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

openDKIM прерывает пересылку электронной почты

После перевода нашего сервера на Postfix я решил реализовать DKIM с помощью OpenDKIM. Мне удалось установить и запустить это, но, хотя он включен как milter, вся пересылка почты на сервере перестает работать.

Например, если я создаю почтовый ящик в james@example.com и настрою его для пересылки на другой адрес (внешний и внутренний затронуты одинаково), исходный отправитель получил сообщение, подобное приведенному ниже:

This is the mail system at host server.example.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

    The mail system

<accounttobeforwardedto@example.com>: Command rejected

Final-Recipient: rfc822; accounttobeforwardedto@example.com
Action: failed
Status: 5.7.1
Diagnostic-Code: X-Postfix; Command rejected

Есть ли у кого-нибудь предложения или опыт? Я достаточно хорошо знаком с qMail, но у меня нет большого опыта работы с Postfix, и, поскольку это производственный сервер, я бы предпочел не ломать вещи без совета.

Проблема решена, если следующие строки закомментированы из /etc/postfix.main.cf

### custom ###
# OpenDKIM
#milter_default_action = accept
#milter_protocol = 6
#smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
#non_smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768

Вот соответствующие ошибки почтового журнала (они появляются, когда /etc/postfix.main.cf код, как указано выше, без комментариев:

Sep  8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Command rejected; from=<originalsender@gmail.com> to=<forwardaddress@gmail.com>
Sep  8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: to=<forwardaddress@gmail.com>, relay=none, delay=0.22, delays=0.22/0/0/0, dsn=5.7.1, status=bounced (Command rejected)

Здесь сервис, который слушает порт 8891 и 12768 соответственно.

[root@server ~]# netstat -anp|grep :8891
tcp     0   0 127.0.0.1:8891     0.0.0.0:*   EN      25137/opendkim
[root@server ~]# netstat -anp|grep :12768
tcp     0   0 127.0.0.1:12768    0.0.0.0:*   EN      33037/psa-pc-remote

Полный файл конфигурации opendkim.conf можно найти в Вот. Приведенный ниже код был урезанной версией этого.

$ egrep -v '^#' opendkim.conf | egrep -v '$^'
PidFile /var/run/opendkim/opendkim.pid
Mode    sv
SendReports yes
SoftwareHeader  yes
Canonicalization    relaxed/relaxed
Selector    default
MinimumKeyBits  1024
KeyFile /etc/opendkim/keys/default.private
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
OversignHeaders From
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
SignatureAlgorithm rsa-sha256
AutoRestart Yes
UserID opendkim:opendkim
Socket inet:8891@localhost

Из того, что я вижу, похоже, что ваши письма отклоняются из-за того, что один из ваших milter не может обработать команды postfix. Это не проблема с postfix, но один из ваших milter работает некорректно.

В вашем conf определены два milter:

  • Один порт 8891, который является опендким
  • Один порт 12768, который является psa-pc-remote

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

Если вам по какой-то причине не нужен psa-pc-remote, вы можете отключить этот milter и оставить только opendkim. В противном случае решение выходит за рамки моей компетенции, и все, что я могу вам посоветовать, - это добавить тег plesk к вашему вопросу и попытаться связаться со службой поддержки plesk.