更新后
从dovecot-1:2.2.10-7.el7.x86_64到1:2.10-8.el7.x86_64
从dovecot-mysql-1:2.2.10-7.el7.x86_64到1:2.10-8.el7.x86_64
从多维柯-鸽子洞-1:2.2.10-7.el7.x86_64到1:2.10-8.el7.x86_64
我无法接收来自外部邮件地址的电子邮件。当从本地邮件地址发送邮件时,发送邮件和接收邮件一样工作正常。在/var/log/maillog中,我有以下错误:
Oct 30 15:11:21 hostname postfix/smtpd[28227]: connect from sonic304-22.consmr.mail.ir2.yahoo.com[77.238.179.147]
Oct 30 15:11:21 hostname postfix/smtpd[28227]: Anonymous TLS connection established from sonic304-22.consmr.mail.ir2.yahoo.com[77.238.179.147]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Oct 30 15:11:21 hostname policyd-spf[28530]: Traceback (most recent call last):
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/libexec/postfix/policyd-spf", line 707, in <module>
Oct 30 15:11:21 hostname policyd-spf[28530]: instance_dict, configData, peruser)
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/libexec/postfix/policyd-spf", line 419, in _spfcheck
Oct 30 15:11:21 hostname policyd-spf[28530]: res = spf.check2(ip, helo_fake_sender, helo, querytime=configData.get('Lookup_Time'))
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/lib/python2.7/site-packages/spf.py", line 297, in check2
Oct 30 15:11:21 hostname policyd-spf[28530]: receiver=receiver,timeout=timeout,verbose=verbose,querytime=querytime).check()
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/lib/python2.7/site-packages/spf.py", line 378, in __init__
Oct 30 15:11:21 hostname policyd-spf[28530]: self.set_ip(i)
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/lib/python2.7/site-packages/spf.py", line 405, in set_ip
Oct 30 15:11:21 hostname policyd-spf[28530]: self.ipaddr = ipaddress.ip_address(i)
Oct 30 15:11:21 hostname policyd-spf[28530]: File "/usr/lib/python2.7/site-packages/ipaddress.py", line 163, in ip_address
Oct 30 15:11:21 hostname policyd-spf[28530]: ' a unicode object?' % address)
Oct 30 15:11:21 hostname policyd-spf[28530]: AddressValueError: '77.238.179.147' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?
Oct 30 15:11:21 hostname postfix/spawn[28087]: warning: command /usr/libexec/postfix/policyd-spf exit status 1
Oct 30 15:11:21 hostname postfix/smtpd[28227]: warning: premature end-of-input on private/policy-spf while reading input attribute name知道错误的原因是什么吗?
发布于 2017-10-30 20:47:49
我已经解决了我的问题。正如注释中所述,相应的Bug报告是https://bugs.centos.org/view.php?id=12393。
由Yohei在评论中提供的修复为我工作。
在修复它之前,确保它是同一个错误。以下版本的包必须匹配:
yum list installed | grep pypolicyd-spf
pypolicyd-spf.noarch 1.3.2-2.el7 @epel
yum list installed | grep python-ipaddress
python-ipaddress.noarch 1.0.16-2.el7 @base软件包可能只需要pypolicyd-spf,否则此修复将破坏任何其他内容。你可以用
rpm -q --whatrequires python-ipaddress
pypolicyd-spf-1.3.2-2.el7.noarch现在的解决办法:
rpm -e --nodeps python-ipaddress
vim /usr/libexec/postfix/policyd-spf在第40行,将行修改如下:
- import ipaddress
+ import ipaddr as ipaddress就这样。根据邮件提供者的配置,他们会尝试隔一段时间发送邮件。大约一个小时后,大部分丢失的邮件都会收到。
如前所述,感谢Yohei提供了此修复。
https://serverfault.com/questions/881014
复制相似问题