可以configurationMailman来logging每封邮件的发件人的IP地址吗?
看来正确的configuration指令(来自Defaults.py)是SMTP_LOG_SUCCESS。 它logging到/ 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,但它没有工作。
可用variables字典似乎在Mailman / Handlers / SMTPDirect.py,第173-180行。 但是,我不太了解Python,因此可以将邮件发件人的IP地址作为variables提供。
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的信息。 所以这至less是我理解你的问题,而不是你想要的。
我会build议另一种方式:根据您的设置,“克隆”原邮件去的邮箱。 从那里提取IP,你可以使用shell工具或Python来做到这一点。
这些IP不直接耦合到正在处理的邮件邮件,但您可以查找IP。
否则,我怕你必须修补邮差,这是一个蹩脚的一段代码(IMO)