スクリプト経由でカスタムフィルタを使用して受信メールを拒否する

スクリプト経由でカスタムフィルタを使用して受信メールを拒否する

背景と要件

このトピックに関する多くの参考資料とQ&A投稿を見つけましたが、デザインの重要な領域を特定できませんでした。

カスタム分析アルゴリズムに基づいて着信メールを拒否したいと思います。分析を実行するPythonスクリプトがあり、現在Gnome Evolutionでメールフィルタとして呼び出してテストしています。すべてが期待どおりにある程度動作するようです。 Pythonの戻りコードの解釈とEvolutionsメールフィルタリングシステムの間にはわずかな微妙な違いがあるようですが、それ以外は動作します。

この段階では、オープンソースでなければならないことを除いて、どんな技術やシステムにも縛られません。理想的にはDebian(またはUbuntu)で実行する必要があるため、Postfixが最も適しているようです。

問題領域

私は、より自律的なレベルで動作する統合を設計し、受信トレイで電子メールをフィルタリングするのに時間を無駄にしないように、ゲートウェイなど(Postfixなど)を調査してきました。キューフィルタの前の軽量アイテムを表示できます(例:ここ)このフックからスクリプトを呼び出す方法を見ることができます。ここしかし、スクリプトから戻りコードを取得しません。

ドキュメントに見つからないのは、スクリプトの結果コード/戻りコードをPostfixに適用してメッセージを許可するか拒否するかを決定する方法です。

このソリューションでは、次のことができる必要があります。拒否する代わりにメール捨てる(残念ながら、何らかの理由でここに入ることはできません)。キューに追加された電子メールから収集された対照データ項目のリストを確認し、Postfix設定にさらにフィルタを自動的に追加するクローン操作について考えました。これは問題の一部だけを解決し、新しい電子メールがなくてもサーバー上で何かが実行されることを意味します。

長い話を短くだから私の質問は次のようになります

  1. MTAでスクリプトを呼び出してスクリプト/呼び出し結果を取得するにはどうすればよいですか?たとえば、電話をかけてscan.pyaを受け取ったり0戻っ1たりします。
  2. ドキュメントでPostfix(または他の同様のオープンソースシステム)のどのメカニズムを参照してから、この結果をタスクにバインドする必要がありますか?

ベストアンサー1

これはスクリプトをmilterに設定することで実現できます。 MILTER_READMEをご覧ください。しかし、これは決して簡単な作業ではないかもしれません。おそらく他の人があなたの目的に合わせて十分に良いものを実装したことを確認する価値があります。ここ

おすすめ記事