Назад | Перейти на главную страницу

Постфикс молча игнорирует получателей

У меня странная проблема, когда на мой почтовый сервер, на котором запущен Postfix, приходит электронное письмо с несколькими получателями в одном домене, и только один из получателей получит сообщение.

Пример из заголовков доставленного электронного письма (адреса изменены для защиты невиновных):

From: Ryan Hood <ryan@customer.example.net>
To: Jeff Bridges <jeff@example.com>
CC: 'Rhonda White' <ronda@example.com>, 'Joe'
    <joe@example.com>

В этом случае Ронда получает электронное письмо, но ни один из других получателей не получает. В журналах на моем пограничном сервере (сервер, принимающий почту из Интернета) я вижу следующее:

Jan  9 14:31:58 edge postfix/smtpd[1470]: 60C31CF435: client=smtp629.remoteserver.net[x.x.x.x]
Jan  9 14:31:58 edge postfix/cleanup[6125]: 60C31CF435: message-id=<BLUPR08MB0085EF631200B8DBC8951C7A5440@BLUPR08MB008.namprd08.prod.outlook.com>
Jan  9 14:31:58 edge postfix/qmgr[3170]: 60C31CF435: from=<ryan@customer.example.net>, size=279996, nrcpt=2 (queue active)
Jan  9 14:31:58 edge postfix/smtp[7186]: 60C31CF435: to=<archive@example.com>, relay=mail-store01.domain.int[10.101.2.6]:25, delay=0.51, delays=0.45/0/0.04/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as BFE4D7F9F6)
Jan  9 14:31:58 edge postfix/smtp[7186]: 60C31CF435: to=<rhonda@example.com>, relay=mail-store01.domain.int[10.101.2.6]:25, delay=0.51, delays=0.45/0/0.04/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as BFE4D7F9F6)
Jan  9 14:31:58 edge postfix/qmgr[3170]: 60C31CF435: removed

Письмо доставляется в наше почтовое хранилище (также работающее с postfix), но только для двух получателей (rhonda@example.com и archive@example.com, который используется для архивирования электронной почты). Ни один другой получатель не указан.

В журнале нашего почтового магазина их тоже не видно.

Jan  9 14:40:48 mail-store01 postfix/smtpd[24566]: BFE4D7F9F6: client=edge.domain.int[10.101.2.2]
Jan  9 14:40:48 mail-store01 postfix/cleanup[24551]: BFE4D7F9F6: message-id=<BLUPR08MB0085EF631200B8DBC8951C7A5440@BLUPR08MB008.namprd08.prod.outlook.com>
Jan  9 14:40:48 mail-store01 postfix/smtpd[24566]: disconnect from edge.domain.int[10.101.2.2]
Jan  9 14:40:48 mail-store01 postfix/qmgr[1441]: BFE4D7F9F6: from=<ryan@customer.example.net>, size=280277, nrcpt=2 (queue active)
Jan  9 14:40:48 mail-store01 dovecot: lda(rhonda@example.com): sieve: msgid=<BLUPR08MB0085EF631200B8DBC8951C7A5440@BLUPR08MB008.namprd08.prod.outlook.com>: stored mail into mailbox 'INBOX'
Jan  9 14:40:48 mail-store01 postfix/pipe[24365]: BFE4D7F9F6: to=<rhonda@example.com>, relay=dovecot, delay=0.07, delays=0.02/0/0/0.05, dsn=2.0.0, status=sent (delivered via dovecot service)
Jan  9 14:40:48 mail-store01 dovecot: lda(archive@example.com): sieve: msgid=<BLUPR08MB0085EF631200B8DBC8951C7A5440@BLUPR08MB008.namprd08.prod.outlook.com>: stored mail into mailbox 'INBOX.2015.01.09'
Jan  9 14:40:48 mail-store01 postfix/pipe[24371]: BFE4D7F9F6: to=<archive@example.com>, relay=dovecot, delay=0.13, delays=0.02/0/0/0.11, dsn=2.0.0, status=sent (delivered via dovecot service)
Jan  9 14:40:48 mail-store01 postfix/qmgr[1441]: BFE4D7F9F6: removed

Странно то, что такое случается крайне редко. У меня много писем, которые правильно доставляются этим получателям с этого внешнего адреса электронной почты, а также с других адресов. Я не понимаю, почему это иногда случается.

Сведения о сервере:

Если это будет полезно, вот мой main.cf на моем пограничном сервере.

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# enable soft bounces for now
#soft_bounce = yes

# TLS parameters
#smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
#smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/mail.example.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.example.com.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = edge.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = edge.example.com, edge, localhost.localdomain, localhost
relay_domains = /etc/postfix/domains,
                /etc/postfix/configs/mail-store01/domains
relayhost = mail-gateway01.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = /usr/bin/procmail -a "$EXTENSION" DEFAULT=$HOME/Maildir/ MAILDIR=$HOME/Maildir
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = smtpd
broken_sasl_auth_clients = yes
#smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031
smtpd_recipient_restrictions = permit_sasl_authenticated
                               check_recipient_access hash:/etc/postfix/clients,
                                                      hash:/etc/postfix/configs/mail-store01/clients
                               permit_mynetworks
                               reject_unauth_destination
#smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031
smtpd_end_of_data_restrictions =

Дайте мне знать, если есть дополнительная информация, которая может оказаться полезной для решения этой проблемы.

Приведу один факт: Получатель в разделе заголовка не имеет отношения к системе доставки электронной почты.

Postfix и другие MTA используют получателя конверта для маршрутизации электронной почты через Интернет. Конечно, вы можете подделать заголовок, чтобы он выглядел так, как будто вы отправляете одному получателю, но на самом деле в конверте, который вы отправляете тысячам получателей (как это делает спамер :)).

Но почему это происходит? Что ж, проблема не в вашем сервере. Postfix никогда не отбрасывал сообщения, не сообщая вам об этом в журналах. Даже если вы отказались от сообщения, в maillog есть вся история, например

22 января 07:24:34 mailx postfix-2nd / smtpd [15167]: NOQUEUE: discard: RCPT from unknown [192.168.235.100]:: адрес получателя запускает действие DISCARD; от = до = proto = ESMTP helo =

Для дальнейшего устранения неполадок вам необходимо поговорить с администратором сервера, с которого пришло письмо. Если сервер-отправитель не отправляет его, значит, ваш сервер тоже его не получает.