Postfix. Работа над ошибками
Содержание
Общая информация
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
Если в журнале появляется сообщение вида:
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. Перенаправление почты.