我将 OpenDkim 配置为使用 postfix,当我尝试发送邮件时出现以下错误:
postfix/cleanup[11542]: 40F271A291A: milter-reject: END-OF-MESSAGE from ***[***]: 4.7.1 Service unavailable - try again later; from=<me@example.com> to=<me2@hotmail.es> proto=ESMTP helo=<[192.168.1.10]>
Run Code Online (Sandbox Code Playgroud)
我已经将 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
Run Code Online (Sandbox Code Playgroud)
正如 Arch wiki 所建议的(以及其他安全建议),Opendkim 由它自己的用户启动。这些文件夹也归 opendkim:mail 所有。
我为所有域使用相同的选择器和签名密钥,这是一个问题吗?
后缀配置如下:
# DKIM
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock
Run Code Online (Sandbox Code Playgroud)
暂时没有安装反垃圾邮件服务,只是一个基本的 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
就我而言,问题在于签名密钥文件具有 root 所有者,因此这样做:
sudo chown opendkim:mail /etc/opendkim/selector.private
Run Code Online (Sandbox Code Playgroud)
修复了问题。
如果这不是您的问题,请不要忘记查看日志,两者都有!postfix 和 opendkim(我忘了查找 opendkim,这是错误):
journalctl --follow --unit postfix.service --unit opendkim.service
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15857 次 |
最近记录: |