Недавно я столкнулся с проблемой на моем почтовом сервере 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 ответ1

0

Решением моей проблемы было (на данный момент) добавить следующие строки в функцию _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

Но имейте в виду: это исправление будет GONE после пакета получает обновления, так что это просто задумана как полезное примечание к кому - то работает с той же проблемой , как и я!

Так что, если у кого-то есть реальное решение, дайте нам знать :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .