Я получаю такие сообщения об ошибках:
Jan 28 17:20:47 halk postfix/smtpd[29413]: NOQUEUE:
reject: RCPT from mail.m2osw.com[138.197.205.139]:
504 5.5.2 <SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com>:
Sender address rejected: need fully-qualified address;
from=<SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com>
to=<secret@valid.domain.tld> proto=ESMTP helo=<m2osw.com>
Я не совсем уверен, что понимаю адрес электронной почты, заключенный в угловые скобки:
SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com
Мне это кажется дерьмом, но, может быть, это форма конверта?
Оригинал From выглядит так:
From: western union <"westernunion1."@lime.ocn.ne.jp>
(что является явным спамом, но то же самое происходит и с обычным спамом.)
Насколько я знаю, моя установка и раньше работала нормально, но я обновил один из своих почтовых серверов до новейшего постфикса (ну, Ubuntu 16.04 вместо 14.04). Сервер архивации был обновлен некоторое время назад.
Эта ошибка возникает, когда я отправляю себе электронное письмо из Gmail. Затем Gmail получает отказ.
Настройка выглядит примерно так:
+------------------+ +------------------+
| | | |
| Client |--->| Main Server |
| | | |
+------------------+ +------------------+
|
v
+------------------+
| |
| Archive Server |
| |
+------------------+
На Главный Сервер, электронная почта работает должным образом. Ошибка возникает, когда электронное письмо достигает Архивный сервер.
Есть ли что-то, что могло бы измениться, что "ломает" адрес электронной почты таким образом при пересылке с одного postfix MTA на другой?
Ладно, я нашел виновного. Эти "странные" адреса электронной почты начинаются с SRS, что указывает на поддержку SPIF, postfix
можно использовать через postsrsd
. Есть четыре записи, которые postsrsd
автор демона предлагает сделать в вашем postfix/main.cf
файл:
sender_canonical_maps = tcp:localhost:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:localhost:10002
recipient_canonical_classes= envelope_recipient,header_recipient
Очевидно, это создает конверт адреса электронной почты. Спецификация этого конверта:
SRS0+xxxx=yy=example.com=alice@yourdomain.org
В моем случае проблема заключалась в том, что доменное имя после @
генерируется динамически. Это означало взять полное имя хоста компьютера и удалить первое имя. Итак, если у меня есть m2osw.com
как имя хоста, postsrsd
в конечном итоге использует com
как доменное имя. Другими словами, у меня были бы адреса электронной почты, которые выглядели бы так:
...@com
Очевидно, @com
не является действительным доменным именем.
В postsrsd
демон использует некоторые определения из файла:
/etc/default/postsrsd
Там мы находим переменную с именем SRS_DOMAIN
. Установив для этой переменной правильное доменное имя:
SRS_DOMAIN=m2osw.com
Электронные письма обертываются, как и ожидалось, и ошибки исчезают. (т.е. у нас была эта настройка на нашем старом «основном сервере». Мы пропустили это при переносе.)
Я так не думаю, журнал, которым вы поделились, показывает, что все выглядит нормально и postfix работает хорошо. Если вам нужно больше информации о том, что происходит, добавьте в main.cf следующее:
error_notice_recipient = postmaster@yourdom.com
delay_notice_recipient = $error_notice_recipient
bounce_notice_recipient = $error_notice_recipient
2bounce_notice_recipient = $error_notice_recipient
#The list of error classes that are reported to the postmaster
notify_classes = bounce, delay, policy, protocol, resource, software
Отклонение вызвано одной из следующих строк:
reject_non_fqdn_helo_hostname,
reject_non_fqdn_recipient
надеюсь, это поможет