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

Postfix дает мне «Адрес отправителя отклонен: нужен полный адрес»; ошибки со странными адресами

Я получаю такие сообщения об ошибках:

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

надеюсь, это поможет