IIS SMTP with SmartHost SendGrid.Net

IIS SMTP with SmartHost at SendGrid.Net

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

为了测试我的配置,我可以远程登录我的本地主机并从那里发送电子邮件没有问题。

但是,如果我通过 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,因此,它被标记为垃圾邮件。

什么可能导致这种情况?

显然,在使用 PHP mail() 而不是在 telnet 时,您需要详细的 header。

对于 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";