SMTPリレーへの認証を必要とするPostfixサーバーがあります。 MySQLデータベースでは仮想メールボックスを使用します。
システムを介してメッセージが中継されました。メッセージの送信に使用されたユーザーアカウントの1つを特定する必要があります。
メッセージヘッダーには以下が含まれます。
Received: from User (c-76-109-241-139.hsd1.fl.comcast.net [xx.109.xxx.139])
by ourserver.com (Postfix) with ESMTPA id 7BA184B4AD4;
Tue, 3 Jul 2012 05:42:59 -0400 (EDT)
「ユーザー」というユーザーがいないため、IPアドレスはメールの送信元ではありません。メッセージの送信時に送信者が認証したユーザーアカウントを確認したいのですが。
これを追跡する方法はありますか?
/var/log/mail.log
でメッセージID(この場合は7BA184B4AD4)をgrepすると、sasl_username
を示すログ行が見つかります。例えば:
% zgrep 07A1753F /var/log/mail.log*
Jul 4 19:47:58 mammon postfix/smtpd[4936]: 07A1753F: client=c-69-181-123-456.hsd1.ca.comcast.net[69.181.123.456], sasl_method=PLAIN, sasl_username=mgorven
編集:smtpd_sasl_authenticated_header
オプションを/etc/postfix/main.cf
で設定した場合、PostfixはSASLユーザー名をメールのReceived
ヘッダー。このヘッダーは改ざんされる可能性があるため、上記がメッセージを送信したユーザーを判別する唯一の信頼できる方法であることに注意してください。
smtpd_sasl_authenticated_header = yes