Postfix を使って送信したメールにLinuxユーザ名が入る
Postfixはmailコマンドで送信したメールのヘッダー情報を変更することができます。
環境によっては送信したメールのFromヘッダが以下のようになります。
From: username <username@example.com>メールアドレス部分の
usernameはsender_canonicalを使って変更できますが、表示名の変更でつまづいたのでそのメモです。Postfixのバージョンは以下の通り
$ postconf | grep mail_version
mail_version = 3.1.0header_checksを使う
Fromヘッダーは
header_checksを使って変更できます。header_checksを作成
ここでヘッダーの置換処理は
sender_canonicalの処理の後に行われるようです。置換処理前のFromヘッダーは以下のようになっています。
From: username@example.com (username)これを次のように置換します。
From: info <username@example.com>/etc/postfix/以下にheader_checksファイルを作成します。header_checks
/^From:[[:space:]](.*@.*)[[:space:]].*$/ REPLACE From: info <${1}>このファイルは正規表現が使えますが、少し変則的です。
スペースは
\sではなく[[:space:]]を指定します。また、変数は
()で囲ったものを${1}で使用できます。header_checks.dbを作成
次に、以下のコマンドを実行します。
postmap /etc/postfix/header_checks/etc/postfix/header_checks.dbが生成されます。main.cfに設定を追加
最後に、
/etc/postfix/main.cfに以下2行を追加します。main.cf
header_checks = regexp:/etc/postfix/header_checks
smtp_header_checks = regexp:/etc/postfix/header_checks
header_checksがコメントアウトされている場合は解除してください。.dbは書かなくていいみたいです。再起動で完了です。
/etc/init.d/postfix restartちなみにこの設定は受信時にも適用されるので正規表現で書く場合は注意が必要ですね。