2016-11-09 87 views
1

我使用IIS配置了我的Windows Server 2016,以便從php獲取郵件()並將它們發送到stmp.sendgrid.net。在SendGrid.Net中使用SmartHost配置IIS SMTP

爲了測試我的配置,我可以telnet我的本地主機,並從那裏發送電子郵件沒有問題。

但是,如果我通過郵件()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因此,它被標記爲垃圾郵件。

這是什麼原因造成的?

+1

看來,IIS不僅僅是作爲中繼,轉而追加一些頭。是否有可能在它進入IIS之前和之後查看MIME消息?然後,您可以將問題隔離到代碼或服務器。 – bwest

回答

2

顯然你需要一個詳細的標題,當使用PHP郵件(),而不是當你的遠程登錄時。

對於PHP郵件()在的最小值:

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; 
$headers .= "From: [email protected]" . "\r\n";