[英]Cant send mail to @gmail
我有此代碼用於發送郵件
$to = "account@gmail.com";
$subject = "mail title";
$message = "mail content";
$from_mail = "sender@site.com";
$headers = 'MIME-Version: 1.0\r\n'.
'From: '.$from_mail.'' . "\r\n" .
'Reply-To: '.$from_mail.'' . "\r\n" .
'Content-type: text/html; charset=utf-8' . "\r\n";
'X-Mailer: PHP/' . phpversion();
該代碼為@gmail
以外的任何郵件提供者發送郵件。
這可能是什么原因
與其他情況一樣,我的猜測是您的郵件已發送到SPAM文件夾。 但是尚不清楚此腳本在什么計算機上運行。 這是您的localhost測試環境還是其他隔離的開發服務器? 還是功能正常的生產服務器?
如果這是一個localhost或其他隔離的測試環境,我猜測Gmail甚至可能是AOL都將您的郵件作為潛在的SPAM進行阻止。
但是,如果這是面向前的生產服務器,則該問題很可能是由於機器所在的IP地址缺少PTR(aka:反向DNS記錄)引起的。
如本網站所述 。
PTR記錄主要用於檢查服務器名稱是否實際上與從其發起連接的IP地址相關聯。
這意味着,如果許多郵件服務器無法將有效的PTR記錄連接到域,則它們會將它們簡單地標記為垃圾郵件。
另外,如果這是具有多個IP地址的生產服務器,則您的SPF(發送方策略框架)記錄可能存在問題。 在此網站上閱讀更多內容 :
更准確地說,SPFv1允許域的所有者指定其郵件發送策略,例如,他們使用哪些郵件服務器從其域發送郵件。
因此,SPF記錄是一個DNS記錄,基本上說:“好吧,您認為您是來自xyz.com
IP地址1.2.3.4
的電子郵件? 讓我查看您的SPF記錄,嘿! SPF記錄說, xyz.com
從IP地址1.2.3.4
發送的任何電子郵件都很酷! 您不是垃圾郵件。”
盡管還有其他一些因素,例如在處理電子郵件時延遲發送或接收,但我非常有信心解決您從其發送的IP地址的PTR和SPF狀態將清除此問題。 這不是編碼問題,而是您身邊的網絡和郵件基礎結構配置問題。
由於垃圾郵件,電子郵件提供商對接受郵件的要求越來越嚴格。
如果您使用共享主機,則該電子郵件服務器的信譽可能很差,您可能必須更改提供商或使用其提供的任何郵件服務。 電子郵件支持可能是一個好的開始
很多時候,郵件沒有被完全阻止而是被延遲。 我會等一會兒,然后檢查電子郵件是否到達那里。 我還要檢查郵件隊列,看看電子郵件的狀態是什么
確保您具有適當的DNS記錄:_ dkim _ spf _ dmarc
確保設置了反向DNS,並且該IP不在阻塞池中,
另外,請確保您不在任何阻止列表中。
IP信譽至關重要,並且會隨着時間的推移而不斷提高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.