新しいメールがPostfixbefore-queueによって受け入れられたときにmilterをトリガーすることができません。明らかに、私は適切に何かをしていませんが、私は何を理解することができません。
私は次のセットアップをしています:Ubuntu Server、Postfix2.11。
Postfixサービスは機能しており、ローカルアカウントへのメールを適切に受信します。
スクリプト/tmp/milter.sh(所有者:me、グループ:me、権限:rwx-rwx-rx)は、実行されるたびに文字列をログに記録します。ターミナルでユーザーmeの下で起動すると、正しく動作します。
/etc/postfix/master.cf
、 私が持っています:
smtp inet n - - - - smtpd
-o content_filter=mymilter
...
mymilter unix - n n - - pipe
flags=F user=me argv=/tmp/milter.sh
新しい構成はによってロードされます
Sudo postfix reload
キューフィルターの前後で、Milterについて混乱しているようです。これらの3つのアイテムは互いに異なっていました。 Postfix Milterサポート 、 キューフィルターの前 および キューフィルターの後 に関するドキュメントを読むことをお勧めします。
パラメータcontent_filter
は、AFTER-QUEUEコンテンツフィルタを実行することを示しています。このパラメータについてのスニペット Postfixドキュメント
メッセージがキューに入れられた後、メッセージ全体を指定されたtransport:destinationに送信します。 transport名は、master.cfのメール配信エージェント定義の最初のフィールドを指定します。 ネクストホップ宛先の構文は、対応する配信エージェントのマニュアルページに記載されています。外部コンテンツフィルターの詳細については、Postfix FILTER_README ファイルを参照してください。
また、なぜ機能しないのかについての質問は、メールログを確認してください。パラメータcontent_filterにmymilter
だけを追加する代わりにmymilter:dummy
を追加する必要があると思います。 t 彼の公式ドキュメント の例を参照してください。
最後に、master.cf
を変更する場合は、postfix stop; postfix start
を使用してpostfixに設定を読み取らせることをお勧めします。