sendmailで手軽にヘッダーをログに出力するための設定。
X-Mailer や User-Agent を指定すれば、
ユーザがどんなメーラーを使用しているかわかります。
1. sendmail.mc に下記コードを追加し、sendmail.cfを作成
LOCAL_CONFIG
# syslog 出力の定義、スペースを # に置換して出力する
Klog syslog -S\#
# MAILER-DAEMONを判定する定義、MAILER-DAEMON の場合は OK を返す
Kcheck_md regex -T@TEMP -a@OK ^[M]AILER-DAEMON$
# Headers クラスを定義
F{Headers}/etc/mail/headerlists
# 全てのヘッダーに output_header ルールを適用
H*: $>output_header
#
LOCAL_RULESETS
Soutput_header
# Envelope From が MAILER-DAEMON か確認
R$* $: <$(check_md $&f $)> <$1>
# MAILER-DAEMON であれば、ここで終了
R<@OK><$*> $@ $1
# MAILER-DAEMON でなければ、ヘッダー名を挿入
R<$*><$*> $: <$&{hdr_name}> <$2>
# Headers クラスと ヘッダー名が一致した場合、syslog に出力
R<$={Headers}><$*> $: $(log "header=" $1 ", value=" $2 $) $2
# おまじない
R<$*><$*> $: $2
# LHS , RHS は tab 区切りで記述すること
##2. 出力するヘッダーを設定(完全マッチ)
# vi /etc/mail/headerlists Subject From To
##3. sendmail の再起動
# service sendmail restart
##4. テスト
入力データ
Subject: ma3ki.net 1402812640 From: <test@ma3ki.net> To: <nobody>
syslog
Jun 15 15:10:40 localhost sendmail[32460]: s5F6Adb8032460: header=Subject, value=ma3ki.com#1402812640 Jun 15 15:10:40 localhost sendmail[32460]: s5F6Adb8032460: header=From, value=<test@ma3ki.com> Jun 15 15:10:40 localhost sendmail[32460]: s5F6Adb8032460: header=To, value=<nobody>