Postfix. Работа над ошибками

From SysadminWiki.ru
Jump to: navigation, search

Общая информация

Postfix очень популярен и потому для него написано много ПО, также и он включается в более сложные системы. В связи с этим стоит иметь в виду, что ошибки при передаче почты могут быть связаны вовсе и не с Postfix'ом.

  • При возникновении любой проблемы прежде всего стоить посмотреть журналы.
    • Журналы Postfix находятся в /var/log/maillog
    • Результаты обработки писем лежат в /var/spool/postfix
    • В Debian Postfix ведёт журнал в /var/spool/mail.err, mail.warn


Для дополнительных ссылок см основную статью Postfix.


Пользователи не получают почту

Первым делом смотрим, что написано в журнале /var/log/maillog о приёме и обработке письма (ориентируемся на адреса отправителя и получателя).

  • Если отправитель точно не спамер то, возможно, неправильно настроена обратная зона на его почтовом сервере. Проверить можно так:
# host alpicom.ch
alpicom.ch has address 194.38.160.10
# host 194.38.160.10
10.160.38.194.in-addr.arpa domain name pointer neobolian.deckpoint.ch.

Это пример неправильной настройки, а вот как должно быть:

# host mail.ru
mail.ru has address 94.100.191.246
mail.ru has address 94.100.191.247
mail.ru has address 94.100.191.248
mail.ru has address 94.100.191.249
mail.ru has address 94.100.191.250
mail.ru has address 94.100.191.201
mail.ru has address 94.100.191.202
mail.ru has address 94.100.191.203
mail.ru has address 94.100.191.204
mail.ru has address 94.100.191.205
mail.ru has address 94.100.191.206
mail.ru has address 94.100.191.207
mail.ru has address 94.100.191.208
mail.ru has address 94.100.191.209
mail.ru has address 94.100.191.210
mail.ru has address 94.100.191.241
mail.ru has address 94.100.191.242
mail.ru has address 94.100.191.243
mail.ru has address 94.100.191.244
mail.ru has address 94.100.191.245
mail.ru mail is handled by 10 mxs.mail.ru.

# host 94.100.191.242
242.191.100.94.in-addr.arpa domain name pointer mail.ru.


  • Если для фильтрации спама стоит spamassassin, то адреса и домены можно включить в белый список в файле /etc/mail/spamassassin/local.cf:
whitelist_from postmaster@domain1.ru
whitelist_from *@domain2.ru


  • Так же можно в самом Postfix в файле /etc/postfix/main.cf добавить ip адрес домена в список mynetworks - но это уже крайний случай, когда всё остальное уже опробовано, так как в этом списке должны быть перечислены только наши сети. Этот список применяется в нескольких случаях и в частности он определяет какие сети/адреса могут использовать наш сервер для пересылки (relay) писем.


  • Если в журнале находим ошибку "450 Server configuration problem", то проверяем настройки в файле main.cf. Одна из возможных причин: не запущен какой-нибудь необходимый демон.

У меня эта ошибка появилась после перезагрузки сервера. Оказалось, что postgrey автоматически не запускался при старте системы, а Postfix направлял ему запрос на разрешение принятия письма.

  • Вообще узнать значение ошибки можно в мануале:
# man smtpd

Для поиска по мануалу (как и в команде less) использовать слеш '/' и после него слово поиска. Слеш без слова - продолжает поиск предыдущего слова. B Интернете это руководство доступно по адресу http://www.postfix.org/smtpd.8.html


Отладка компонентов Postfix (фильтров, антивирусов и т.д.)

В целях отладки будет полезно для некоторых компонентов Postfix включить более детальное журналирование. Для этого в /etc/postfix/master.cf в колонке commnads + args добавляем ключ -v. Например, для virtual строка будет выглядеть так:

virtual   unix  -       n       n       -       -       virtual -v

Recipient address rejected: Access denied

При добавлении антивирусного или антиспамного сервиса в Postfix может в журнале появиться ошибка:

(host 127.0.0.1[127.0.0.1] said: 554 <user@domain.ru>: Recipient address rejected: Access denied (in reply to RCPT TO command))

а пользователь получает "Undelivered Mail Returned to Sender" с ошибкой:

Diagnostic-Code: X-Postfix; host 127.0.0.1[127.0.0.1] said: 554

Это происходит когда в список mynetworks не включён loopback интерфейс, т.е. сеть 127.0.0.0/8

554 <user@domain.ru>: Relay access denied

Если получаем ответное письмо с таки сообщением, то возможно не указаны нужные сети в mynetworks, например:

mynetworks = 10.0.0.0/24 10.1.0.0/16


transport is unavailable

Если в журнале появляется сообщение вида:

postfix/qmgr[25305]: 65D383767D: to=<user@domain1.ru>, relay=none, delay=1689, status=deferred (transport is unavailable)

То проблема с настройкой таблицы маршрутизации почты. См статью: Postfix. Перенаправление почты.


Name or service not known

Если в журнале появляется сообщение вида:

postfix/smtp[32546]: 798993767D: to=<user@domain1.ru>, relay=none, delay=1, status=bounced ([mail.domain2.ru]: Name or service not known)

То проблема с настройкой таблицы маршрутизации почты. См статью: Postfix. Перенаправление почты.