我最近在我的 freebsd postfix 邮件服务器上遇到了一个问题,其中有py27-postfix-policyd-spf-python-1.3.2_1
我的邮件日志已满,包含以下消息:
policyd-spf[16637]: ERROR: 127.0.0.0/8 in skip_addresses not IP network. Message: '11.22.33.44' 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?. Aborting white list processing.
按照其他人的建议切换到 python 3 不起作用(既没有改变 shebang,也没有直接通过 python3 启动它
答案1
我的问题的解决方案是(目前)_cidrmatch
在函数中添加以下几行/usr/local/bin/policyd-spf
def _cidrmatch(ip, netwrk)
netwrk = unicode(netwrk)
ip = unicode(ip)
try:
address = ipaddress.ip_address(ip)
这样做是为了让 python 模块 ipaddr 只需要处理 unicode 字符串(根据错误消息的要求)
按照网络上其他帖子的建议切换到 python3 对我来说不起作用(也许缺少一些依赖项?)
这篇文章也对我有很大帮助 https://stackoverflow.com/questions/30389019/valueerror-10-0-0-0-24-does-not-appear-to-be-an-ipv4-or-ipv6-network
但请记住:此修复将已消失在数据包得到更新后,所以这只是旨在提供有用的提示对于遇到与我同样问题的人!
因此,如果有人有真正的解决方案,请告诉我们:)