各メッセージの送信者のIPアドレスをログに記録するようにMailmanを構成することは可能ですか?
(Defaults.pyからの)正しい構成ディレクティブはSMTP_LOG_SUCCESSのようです。/var/log/mailman/postにログを記録します。
SMTP_LOG_SUCCESS = (
'post',
'post to %(listname)s from %(sender)s, size=%(size)d, message-id=%(msg_message-id)s, success')
このディレクティブをmm_cfg.pyにコピーし、%(ip)と%(remote)を追加してみて(推測)、Mailmanを再起動しましたが、機能しませんでした。
使用可能な変数の辞書は、Mailman/Handlers /SMTPDirect.pyの173〜180行目にあるようです。ただし、ここでメッセージ送信者のIPアドレスを変数として使用できるようにするのに十分なPython)はわかりません。
d = MsgSafeDict(msg, {'time' : t1-t0,
# BAW: Urg. This seems inefficient.
'size' : len(msg.as_string()),
'#recips' : len(recips),
'#refused': len(refused),
'listname': mlist.internal_name(),
'sender' : origsender,
})
ヘイ。 SMTPDirectが行うことは
Local SMTP direct drop-off.
This module delivers messages via SMTP to a locally specified daemon.
送信者のIPに関する情報はありません。つまり、これは少なくとも私があなたの質問を理解する方法であり、あなたが望むものではありません。
別の方法をお勧めします。設定に応じて、元のメールの送信先となるメールボックスを「複製」します。そこからIPを抽出します。これを行うには、シェルツールまたはpythonを使用できます。
IPは、Mailmanが処理しているメールに直接結合されていませんが、IPを検索できます。
そうでなければ、私はあなたがmailmanにパッチを当てなければならないのではないかと心配しています。これは厄介なコードです(imo)