首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AddressValueError,Dovecot不能接收外部邮件

AddressValueError,Dovecot不能接收外部邮件
EN

Server Fault用户
提问于 2017-10-30 14:59:36
回答 1查看 210关注 0票数 0

更新后

从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中,我有以下错误:

代码语言:javascript
复制
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

知道错误的原因是什么吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-10-30 20:47:49

我已经解决了我的问题。正如注释中所述,相应的Bug报告是https://bugs.centos.org/view.php?id=12393

由Yohei在评论中提供的修复为我工作。

在修复它之前,确保它是同一个错误。以下版本的包必须匹配:

代码语言:javascript
复制
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,否则此修复将破坏任何其他内容。你可以用

代码语言:javascript
复制
rpm -q --whatrequires python-ipaddress
pypolicyd-spf-1.3.2-2.el7.noarch

现在的解决办法:

代码语言:javascript
复制
rpm -e --nodeps python-ipaddress
vim /usr/libexec/postfix/policyd-spf

在第40行,将行修改如下:

代码语言:javascript
复制
- import ipaddress
+ import ipaddr as ipaddress

就这样。根据邮件提供者的配置,他们会尝试隔一段时间发送邮件。大约一个小时后,大部分丢失的邮件都会收到。

如前所述,感谢Yohei提供了此修复。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/881014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档