freebsd postfix python policyd-spf ip 地址验证错误

freebsd postfix python policyd-spf ip 地址验证错误

我最近在我的 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

但请记住:此修复将已消失在数据包得到更新后,所以这只是旨在提供有用的提示对于遇到与我同样问题的人!

因此,如果有人有真正的解决方案,请告诉我们:)

相关内容