通过PHP邮件发送邮件时() – Postfix添加下列标题:
Received: by myhost.mydomain.com (Postfix, from userid 48) id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
有没有办法删除用户名部分,但保持其余的? 所以结果变成(如果正确的话):
Received: by myhost.mydomain.com (Postfix) id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
Postfix运行在本地主机上,仅用于通过mail()函数从PHP发送邮件。
关于删除整个标题的一个类似的问题已经被问到,但我不知道如何删除用户标识部分,但保留其余部分。
我想你可以尝试像这样:
/etc/postfix/main.cf中
header_checks = pcre:/etc/postfix/header_checks.pcre
/etc/postfix/header_checks.pcre
/^Received: by(.*) (Postfix, from userid(.*)$/ REPLACE Received: by ${1}
(我可能是错误的正则expression式,但它应该工作)
无论如何你都不能编辑收到的行。
它们主要是RFC 5321所要求的,不允许操作。 其次,他们是跟踪滥用的宝贵来源。
假设你只通过Apache发送邮件(userid 48),如果你看到来自userid 5000的消息,它会告诉你什么? 你是对的:恶意用户或脚本正在疯狂运行。 你能够跟踪用户名已被删除的这个问题吗?
现在你只能改变第一行。 我的解决scheme是与正则expression式
/etc/postfix/main.cf中
header_checks = regexp:/etc/postfix/header_checks
/等/后缀/ header_checks
/^Received: by (.*) .*Postfix, from userid [0-9]+\)\s*id ([AF[:digit:]]+)(.*) (.*)/ REPLACE Received: by $1 (some text) id $2$3 (EEST)
你可以检查rezult( http://rubular.com/r/JH14xFTWL9 )
要么
postmap -q "Received: by mail.xxxx.lt (Postfix, from userid 48) id 5F7CD1E148A Thu, 23 Oct 2014 15:55:08 +0300 (EEST)" regexp:/etc/postfix/header_checks