Recieved ヘッダーからユーザー ID を削除する

Recieved ヘッダーからユーザー ID を削除する

PHP mail() を介してメールを送信する場合、Postfix は次のヘッダーを追加します。

Received: by myhost.mydomain.com (Postfix, from userid 48)
    id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)

ユーザー ID 部分を削除し、残りを残す方法はありますか? 結果は次のようになります (正しい場合):

Received: by myhost.mydomain.com (Postfix)
    id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)

Postfix はローカルホスト上で実行されており、PHP から mail() 関数を介してメールを送信するためにのみ使用されます。

ヘッダー全体の削除に関する同様の質問以前にも質問されましたが、ユーザーID部分を削除して残りを残す方法がわかりません。

答え1

次のようなことを試してみるといいと思います:

/etc/postfix/main.cf

header_checks = pcre:/etc/postfix/header_checks.pcre

/etc/postfix/header_checks.pcre

/^Received: by(.*) \(Postfix, from userid(.*)$/ REPLACE Received: by ${1}

答え2

いかなる場合でも、受信した行を編集しないでください。

主に、これらは RFC 5321 によって要求されており、操作することは許可されていません。次に、これらは不正使用を追跡するための貴重な情報源です。

Apache (ユーザー ID 48) 経由で PHP のみを使用してメールを送信すると仮定します。ユーザー ID 5000 からのメッセージが表示された場合、何を意味するのでしょうか? おっしゃる通りです。悪意のあるユーザーまたはスクリプトが暴走しています。ユーザー ID を削除してこの問題を追跡できますか?

答え3

これで最初の行だけ変更できるようになりました。私の解決策は正規表現を使うことです

/etc/postfix/main.cf

header_checks = regexp:/etc/postfix/header_checks

/etc/postfix/ヘッダーチェック

/^Received: by (.*) .*Postfix, from userid [0-9]+\)\s*id ([A-F[:digit:]]+)(.*) (.*)/ REPLACE Received: by $1 (some text) id $2$3 (EEST)

結果を確認することができます(http://rubular.com/r/JH14xFTWL9

または

postmap -q "Received: by mail.xxxx.lt (Postfix, from userid 48) id 5F7CD1E148A Thu, 23 Oct 2014 15:55:08 +0300 (EEST)" regexp:/etc/postfix/header_checks

関連情報