Postfix Policyd-spf 設定の Python エラー: 「警告: サーバー private/policyd-spf との通信に問題があります」

Postfix Policyd-spf 設定の Python エラー: 「警告: サーバー private/policyd-spf との通信に問題があります」

pypolicyd-spfPostfix 3.3.1でのサポートの実装8 の、 で次のエラーが発生しました/var/log/maillog:

spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
postfix/smtpd[xxxx]: warning: problem talking to server private/policyd-spf: Connection reset by peer

パスの問題ではないため、ユーザー接尾辞パスがありません:

$ getent passwd postfix
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

これをどこで修正しますか?

答え1

問題:

一見するとパスの問題のように見えましたが、そうではありませんでした。ポリシーd-spf必要正しいPythonを見つけるための絶対パスポストフィックス構成でmaster.cf

私が最初に選んだ道はネット上のどこかのHowToからコピーしたと思います-master.cf統合では次のようになりました:

policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf

近かったが、ダメだった。提供された Python へのパスにargvバージョン番号が含まれていなかったため、エラーが吐き出された。

解決:

初め: Pythonがどこにいるか調べる。8.1 の、 なるほど:

whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/share/man/man1/python.1.gz

2番: 供給正しいPythonへの絶対パスポリシーd-spf設定/etc/postfix/master.conf:

policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python3.6 /usr/libexec/postfix/policyd-spf

ついにPostfixを再起動します:

systemctl restart postfix

結論:

パスの問題を調査するのに無駄な時間を費やす必要はありません。これは8 のどちらでも。このエラーは、ポリシーd-spf設定master.cf

関連情報