openDKIM прекращает пересылку электронной почты
Переместив наш сервер на Postfix, я решил внедрить DKIM с использованием OpenDKIM. Я успешно смог установить и запустить его, но пока он включен как все, пересылка почты на сервере не работает.
Например, если я создаю почтовый ящик по адресу 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
1 ответ
Из того, что я вижу, кажется, что ваши письма были отклонены из-за того, что один из ваших milter не смог обработать команды postfix. Это не проблема с постфиксом, но один из ваших milter не ведет себя должным образом.
В вашем сообщении определены два milters:
- Один порт 8891, который является опендким
- Один порт 12768, который является psa-pc-remote
Обратите внимание, что эти два показателя накапливаются, и что мы на самом деле не знаем, какой из них является причиной сбоя. Тем не менее, мне кажется, что это более поздняя версия, поскольку вы, похоже, не первые испытываете проблемы с ней. Смотрите этот вопрос, например.
Если вам не нужен psa-pc-remote по какой-либо причине, вы можете отключить этот milter и сохранить только opendkim. В противном случае решение выходит за рамки моей компетенции, и все, что я могу вам посоветовать, - это добавить тег plesk к вашему вопросу и попытаться связаться со службой поддержки plesk.