Exim4/Postfix: Network is unreachable

В журнале Exim4 или Postfix периодически появляются записи вида: aspmx.l.google.com [2a00:1450:4010:c08::1b] Network is unreachable.
Используемый MTA (Exim4 или Postfix) пытается подключиться к SMTP Google по протоколу IPv6, но этого не удаётся сделать, по причине отсутствия поддержки IPv6 в используемой сети или конфигурации сетевых интерфейсов.
Для решения проблемы, требуется отключить использование протокола IP 6 версии.
Для Exim4, конфигурационном файле /etc/exim4/exim4.conf.template, в начале файла, перед секцией begin acl необходимо вписать:

disable_ipv6 = true

После чего, необходимо перезагрузить Exim4 командой /etc/init.d/exim4 restart.
Для Postfix, конфигурационном файле /etc/postfix/main.cf, необходимо отредактировать директиву:

inet_protocols = ipv4

После чего, необходимо перезагрузить Postfix командой /etc/init.d/postfix restart.

P.S.: Если Вы всё таки решите задействовать протокол IPv6, не забудьте указать свой IPv6 адрес в DNS записях, чтобы не возникло проблемы с прохождением проверки SPF-записи.

Exim4 — Не доходит отправляемая почта

В журнале Exim4 /var/log/exim4/mainlog постоянно пополняются записи:

Our system has detected an unusual rate of\n421-4.7.0 unsolicited mail originating from your IP address. To protect our\n421-4.7.0 users from spam, mail sent from your IP address has been temporarily\n421-4.7.0 rate limited.

Сие говорит о том, что сервер-получатель отвергает корреспонденцию из-за подозрения на спам (слишком частые отправления писем). Следует отследить в журнале почтовые адреса, от имени которых отправляются письма. Если почтовые адреса отправителей Вам не известны, то скорее всего вредоносный код генерирует рассылку, от имени несуществующих почтовых адресов, подключенных доменов.
Следует посмотреть объем неотправленных сообщений в директории /var/spool/exim4/input. Если сообщения содержат спам и их объём велик — следует выявить вредоносный код, генерирующий эти письма.
К примеру, если сервер используется для работы сайтов, написанных на PHP, то для обнаружения вредоносного кода следует изучить журнал /var/log/php-mail.log. По количеству генерируемых сообщений, обнаружить вредный сценарий довольно просто.
После устранения источника проблемы, следует остановить почтовый сервер командой killall -9 exim4 (команда service exim4 stop вероятнее всего не прервёт процесс отправки замороженных почтовых сообщений). И затем очистить директорию со скопившейся корреспонденцией, командой find /var/spool/exim4/input -delete. После чего, почтовый сервер можно запустить вновь: service exim4 start.
Для пресечения подобной проблемы в будущем, можно ограничить список адресов, корреспонденция с которых будет отправляться сервером Exim4.

Mail failure — no recipient addresses

При использовании MTA Exim и Redmine, настроенного на отправку почты средствами sendmail, генерируемые письма могут не доходить до адресата, при этом, сервер получателя присылает ответ:

A message that you sent using the -t command line option contained no addresses that were not also on the command line, and were therefore suppressed. This left no recipient addresses, and so no delivery could be attempted.

Проблема заключается в том, что Redmine использует для отправки почтового сообщения команду sendmail с опцией “-t”. Если при использовании этой опции в командной строке также указать адрес получателя, то при стандартных настройках Exim4 удалит указанный адрес из заголовков “To:”, “Cc:” и “Bcc:” при построении конверта. Таким образом, для решения данной проблемы требуется добавить опцию extract_addresses_remove_arguments = false в конфигурационный файл /etc/exim4/exim4.conf.template (в том случает, если при настройке Exim Вы не разбивали конфигурационный файл на множество мелких файлов) и перезапустить (service exim4 restart) или перенастроить Exim (dpkg-reconfigure exim4-config). Постарайтесь добавить данную опцию не в самый конец файла, иначе можете получить ошибку:

Exim configuration error in line 887 of /var/lib/exim4/config.autogenerated.tmp: option «extract_addresses_remove_arguments» unknown Invalid new configfile /var/lib/exim4/config.autogenerated.tmp, not installing /var/lib/exim4/config.autogenerated.tmp to /var/lib/exim4/config.autogenerated

Альтернативным способом является правка кода, например, передать другой параметр в Rails:

config.action_mailer.sendmail_settings = {
  :arguments => "-i"
}