Postfix: 受信メールをバウンスするが、配信は継続する

Postfix: 受信メールをバウンスするが、配信は継続する

私は自分のメールサーバーを運用していますが、ある個人から「スパム」メールを受け取っています。この人物が私にこれ以上メールを送ってこないようにするために、受信メールを(彼のメール アドレスに基づいて)返送したいと思っています。しかし、そのメールはオンラインでの嫌がらせの「証拠」になる可能性があるため、それでもメールは配信してもらいたいのです。

私の考えは、受信メールを 2 つのアカウント (virt-user-table 内) に送信することでした。1 つはメールを受け入れ、もう 1 つは配信に失敗したというメールを返信してメールをバウンスします。

これは可能ですか? また、Postfix でこれを設定するにはどうすればよいですか?

よろしくお願いします。

答え1

基本的に、ここでメールがバウンスされることは望ましくありませんが、一部の送信者に対しては、サーバーで追加のメッセージを生成する必要があります。

次のようなメッセージを作成するスクリプトを書くことができます。似ているバウンス(例えば「偽のバウンス」を作成する)を作成し、この送信者からのメッセージがこのスクリプトをトリガーするように設定し、加えて通常配送になります。

そのための1つの方法は、always_bccエイリアスに、そのエイリアスのターゲットはスクリプトパスである必要がありますパイプで始まるスクリプトが実行され、解析するメッセージが入力されます。メッセージは標準入力に表示されます。スクリプトはメッセージを解析し、送信者のアドレスをチェックして、何もせずに正常に終了するか、偽のバウンスを作成します。これはメッセージの追加受信者にすぎないため、標準のメール受信パスは変更されません。メールは元の宛先に配信されます。ただし、スクリプトがいつも正常に存在する(例えば、ゼロ以外のエラーコードで失敗しない)、そうでない場合は送信者意思本当の跳ね返りがあり、非常に不可解なものです。

追加/etc/aliases:

bcc_script: |/usr/local/bin/bcc_script.py

(このファイルを編集した後は必ず実行してくださいnewaliases)。

追加/etc/postfix/main.cf:

always_bcc = bcc_script

次のように始まります/usr/local/bin/bcc_script.py:

#!/bin/env python3

import sys, email

try:
    msg = email.message_from_bytes(sys.stdin.read()) 

    if msg['From'] != '[email protected]':
        sys.exit(0)

    # creating of the fake bounce here
    ...

except Exception:
    pass
    # do nothing, fail silently to avoid bounces if the code above throws runtime error

このコードはテストしていないので、すぐには動作しない可能性があることに注意してください。他の例はインターネットで見つけることができます。

関連情報