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

但請記住:此修復將消失了資料包更新後,所以這只是旨在作為有用的註釋給遇到跟我一樣問題的人!

因此,如果有人有真正的解決方案,請告訴我們:)

相關內容