postgreyは受信メールをどのように追跡するのか

postgreyは受信メールをどのように追跡するのか

postgrey が受信メールを追跡する方法を理解する必要があります。グレーリストの仕組みの概念は理解していますが、実際の方法については疑問があります。グレーリストは、メール サーバーが一定期間内にメッセージを正常に送信した回数をカウントし、必要なしきい値に達すると、X 期間にわたって既知のメール ホストになります。

という事は承知しています。

しかし、特定のメールが未知のメール ホストから初めて届いた場合、postgrey はこの個々のメッセージをどのように追跡するのでしょうか。つまり、準拠サーバーから 2 回目に返送されたときに、postgrey はそれが「延期された」メールであることをどのように認識するのでしょうか。

答え1

動作を要約すると、IP アドレス + 送信者 + 受信者に対してチェックが行われます。接続状態は Berkeley DB に保存されます。

接続が到着すると:

  • 定義されたホワイトリストの一部である場合は受け入れられます。
  • DB にない場合は DB に追加され、接続は拒否されます。
  • DBの場合:
    • 最初の再試行で retry_window を超えている場合は、DB から破棄されます。
    • 定義された retry_window 内であれば、接続は受け入れられます。

からスパムを避けるためのグレーリスト

IP アドレス、送信者、受信者の 3 つ組は、postgrey のデータベースに「既知の送信者」として保存され、同じアドレスからの今後のメールは遅延なく直ちに配信されるようになります。

ほとんどのスパマーはこれを行わないため (2 度目の配信を試行します)、ほとんどのスパムメールは無視されます。

からposgrey ソースコメント

前回が失敗したかどうかを調べて、どれだけ待たなければならなかったかを示すヘッダーを追加できるようにします。
....
最初の再試行であり、retry_window を超えている場合は、保存された最初に見たものを破棄します。

関連情報