プロジェクト

全般

プロフィール

一定スコアのメールを配送保留する

一定以上のスコアのメールについてrejectルールのように「即時破棄はしたくない」が
add_headerなどで「即時配信はしたくない」という場合、Webインタフェースでは表示
されないアクションとして「一定時間隔離」(quarantine)というアクションがあります。

これを適用された場合、メールがmilterのrspamdからpostfixなどのMTAに戻された際に
MTAの仕様に基づき隔離処理が実施されます。postfixでは2.6以降ではHOLDをかけるようです。
これによりメールを一時保留して配送しない事が出来ます。

また保留状態でそのままにしておくと、再送待ちと異なりそのままではメールはキューから
削除されません。そのため誤検知などをチェックすることが可能です。

設定方法

  • 下記ファイルを変更します。
    ここでは例としてrejectまたはquarantineのみとしています。
    # vi actions.conf
    ----------------------------------------
    reject = 20.0;
    rewrite_subject = null;
    quarantine = 10.0;
    add_header = null;
    greylist = null;
    
  • サービスを再起動して反映します。
    # systemctl restart rspamd
    

動作確認

  • ブラックリストなどを用いて当該スコアを上回るメールを送るとHistoryのActionに
    「quarantine」でログが記録されます。
  • postfixのキュー確認をすると「HOLD」状態でメールが保留されています。
    キューIDの末尾が「!」であるものは保留されていることを指します。
    # mailq
    -Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
    3617E380231!    1955 Tue Oct  7 16:56:19  差出人
                                             宛先
    

保留後の処理

  • 保留メールを確認する
    # postcat -q キューID(!は除く)
    
  • 保留を解除する場合(誤検知など)
    # postsuper -r キューID(!は除く)
    または
    # postsuper -r ALL(すべての場合)
    
    必要があれば下記で再送を急がせる
    # postqueue -f ALL
    
    • 「H」オプションでHOLDを外してもよいのですが、長時間HOLDされたメールは再送がされない恐れがあります。
  • 保留メールを削除する場合
    # postsuper -d キューID(!は除く)
    または
    # postsuper -d ALL(すべての場合)