Gmail 不接受来自我的本地 Postfix 服务器的电子邮件

Gmail 不接受来自我的本地 Postfix 服务器的电子邮件

当我尝试从我的 postfix 服务器发送邮件到 gmail 帐户时,我在日志中收到以下错误消息:

我们的系统检测到此邮件不符合 RFC 2822 标准。为了减少发送到 Gmail 的垃圾邮件数量,我们已屏蔽此邮件。有关详细信息,请查看 RFC 2822 规范。xt7si10601581pab.187 - gsmtp(回复 DATA 命令的结尾)

经过多次故障排除后,我发现这是因为我的 postfix 服务器生成的电子邮件头中没有“发件人”地址字段。

我使用以下行在“/etc/postfix/main.cf”中启用了标头检查:

header_checks = regexp:/etc/postfix/header_checks

并在文件中添加以下行:

!/^From:/ REPLACE From: [email protected]

现在,所有邮件都被 gmail 服务器接受了。但是,现在通过我的 postfix 服务器发送的任何邮件都来自地址“[电子邮件保护]“。

我需要一个后缀中的正则表达式,它将标题替换为“发件人”地址,并将其替换为发送时的相同发件人地址。

简而言之,我想要生成一个“发件人”字段与发件人地址相同的邮件头。

请帮忙。

答案1

你在错误的地方修复了它。你应该修复/更改发送没有 From: 标头的电子邮件的应用程序,而不是在你的邮件服务器上伪造它。没有 From: 标头的电子邮件是不正确的,应该由路径上的第一个服务器阻止。

答案2

我同意你实际上应该查看执行 sendmail/mail 命令的脚本,因为那里可能出了问题。

但是,如果您无法更改这些脚本,您至少可以找出它们正在流式传输到正在使用的邮件命令的内容,然后您可以动态修改此流,从标题中附加内容等。

看看我是如何在其他地方使用 sed 来实现这一点的:https://stackoverflow.com/questions/15250199/crontab-email-through-msmtp-amazon-ses/32842451#32842451

基本上,假设是 sendmail 调用邮件发送,您重命名 sendmail.bin,然后创建自己的 sendmail.bin,其中包含基于 sed 的流拦截及其操作,然后将其转发到重命名的 sendmail.bin

相关内容