1

我用 IIS 配置了我的 Windows Server 2016 以从 php 中提取 mail() 并将它们发送到 stmp.sendgrid.net。

为了测试我的配置,我可以 telnet 我的 localhost 并从那里毫无问题地发送电子邮件。

但是,如果我通过 mail() php 函数发送电子邮件,SendGrid 会收到请求,但会因以下错误而阻止它:

REASON550 5.7.1 [167.89.55.39 11] Our system has detected that this message is not RFC 5322 compliant: Multiple 'From' headers found. To reduce the amount of spam sent to Gmail, this message has been blocked. Please visit https://support.google.com/mail/?p=RfcMessageNonCompliant and review RFC 5322 specifications for more information. h190si13823586ite.62 - gsmtp 

所以错误是因为它是 IIS 将电子邮件发送到 sendgrid,因此,它被标记为垃圾邮件。

什么可能导致这种情况?

4

1 回答 1

2

显然,当您使用 PHP mail() 而不是远程登录时,您需要一个详细的标题。

对于最低限度的 PHP mail():

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: your@email.com" . "\r\n";
于 2016-11-09T19:18:41.643 回答