当我试图从我的postfix服务器发送到Gmail帐户,我在日志中收到以下错误信息:
我们的系统检测到这个消息是550-5.7.1不符合RFC 2822。 为了减less发送给Gmail的垃圾邮件数量,550-5.7.1该邮件已被阻止。 请查阅550 5.7.1 RFC 2822规格了解更多信息。 xt7si10601581pab.187 – gsmtp(回复数据命令结束))
排除了很多问题之后,我发现这是因为“from”地址字段不存在于从我的postfix服务器生成的电子邮件标题中。
我使用下面的代码在“/etc/postfix/main.cf”中启用了标题检查:
header_checks = regexp:/etc/postfix/header_checks
并在文件中添加以下行:
!/^From:/ REPLACE From: [email protected]
现在,所有的邮件都被Gmail邮件服务器所接受。 但是,现在通过我的postfix服务器发送的邮件地址为“[email protected]”。
我需要一个在后缀的正则expression式,它将“发件人”地址replace为发件人地址。
总之,我想生成一个邮件标题与“从”字段相同的地址。
请帮忙。
你正在修正它的错误点。 您应该修改/更改发送没有From:标题的电子邮件的应用程序,而不是在邮件服务器上伪造它。 电子邮件没有From:标头不正确,应该被path上的第一个服务器阻止。
我同意,实际上你应该看看发送sendmail / mail命令的脚本,因为它可能是出错的地方。
但是,如果你不能改变这些脚本,你至less可以知道他们正在使用什么邮件命令,然后你就可以修改这个stream,从头文件中附加。
看看我用sed来完成这个地方: https : //stackoverflow.com/questions/15250199/crontab-email-through-msmtp-amazon-ses/32842451#32842451
基本上,假设sendmail调用发送邮件,重命名sendmail.bin,然后创build自己的sendmail.bin,其中包含基于sed的stream拦截和操作,然后将其转发给重命名的sendmail.bin