我将 OpenDkim 配置为使用 postfix,当我尝试发送邮件时出现以下错误:
postfix/cleanup[11542]: 40F271A291A: milter-reject: END-OF-MESSAGE from ***[***]: 4.7.1 Service unavailable - try again later; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.1.10]>
我已将 opendkim 配置为使用 unix 套接字,并且它正在工作:
[chazy@mail ~]$ sudo netstat -nalp | grep dkim
unix 2 [ ACC ] STREAM LISTENING 144135 11267/opendkim /run/opendkim/opendkim.sock
unix 3 [ ] STREAM CONNECTED 147626 11267/opendkim /run/opendkim/opendkim.sock
unix 2 [ ] DGRAM 144137 11267/opendkim
Opendkim 由它自己的用户启动,正如 Arch wiki 所建议的(以及其他安全建议)。这些文件夹也归 opendkim:mail 所有。
我对所有域都使用相同的选择器和签名密钥,这有问题吗?
后缀配置如下:
# DKIM
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock
目前没有安装反垃圾邮件服务,只是一个基本的 postfix/dovecot/opendkim 配置来测试服务器。
Opendkim 配置:
# /etc/opendkim/opendkim.conf
BaseDirectory /var/lib/opendkim
Canonicalization relaxed/simple
Domain domain1.com domain2.com
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyFile /etc/opendkim/201704.private
KeyTable refile:/etc/opendkim/KeyTable
Selector 201704
SigningTable refile:/etc/opendkim/SigningTable
Socket local:/run/opendkim/opendkim.sock
Syslog Yes
TemporaryDirectory /run/opendkim
UMask 002
UserID opendkim:mail
TrustedHosts 配置:
# /etc/opendkim/TrustedHosts
# Trusted Hosts List
127.0.0.1
::1
x.x.x.x # Server IP
mail.maindomain.com
# Domains
maindomain.com
domain2.com
就我而言,问题在于签名密钥文件具有root所有者,因此这样做:
修复了问题。
如果这不是你的问题,别忘了看看期刊,两者都有!postfix 和 opendkim (我忘了查找 opendkim 并且有错误):
尝试从您用作签名表的文件中删除“*@”是否有效。这就是造成我的原因,即使我有
在我的 opendkim.conf 中。
就我而言,传出的消息太大了。
解决问题后,我得到:
为了解决这个问题,我添加了
/etc/opendkim.conf
:并重新启动 opendkim
service opendkim restart
(或systemctl restart opendkim
)。设置 256k 的限制没有帮助,因为标头更大,所以我设置了 0 禁用限制。随着根本原因消失,我可以再次评论该行。
旁注,真正的原因
标头可能太大,因为没有添加标头就将日志的输出通过管道传输到 sendmail。
我是这样实现的,但没有意识到这封邮件被卡住了:
为了使用“sendmail”正确编写脚本,我做了以下事情:
问题:
还有另一件事会导致我刚刚发现的这个错误,这让我非常痛苦:
您会认为您将 opendkim 指向 PID 所在的位置...
解决方案:
这就是指令的实际作用以及为什么服务被呈现“ milter-reject: END-OF-MESSAGE from ...: 4.7.1 服务不可用”
参考:http://www.opendkim.org/opendkim.conf.5.html
我一评论它,一切就开始工作了。
这是我使用的默认值,并且看到其他样本配置使用此值,因此最初没有给予它权重并寻求与错误权限相关的解决方案。
确保您对该指令具有正确的值,否则您将花费数小时追逐您的尾巴。至少可以说,日志记录没有帮助。