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