[英]php mail() doesnt work for gmail and hotmail
我正在嘗試使用php中的mail()
發送新的系統生成的密碼。 問題是我能夠將其發送到yahoo,但是當我使用gmail或hotmail時,盡管該函數返回true,但我沒有收到任何電子郵件。 以下是功能:
if(mail($to,$subject,$body))
{
return true;
}
else
{
return false;
}
它可能最終出現在垃圾郵件文件夾中。 如果有,請確保您的電子郵件標題是完美的。
您可以調查想要實現的目標。 Zend_Mail具有連接gmail和其他人所需的一切。
如果您通過yahoo成功獲取郵件,則還應該在問題中張貼來自yahoo的郵件頭。 我敢打賭,您還需要添加“發件人字段”,才能通過hotmail,gmail等獲得通過。
您的問題可能是反垃圾郵件過濾器。 從PHP發送的電子郵件通常被郵件服務器標記為垃圾郵件,最終被刪除或放入垃圾箱。
您可以通過Google查找“ php郵件垃圾郵件”,以獲取有關如何解決此問題的一些提示。
也許您在共享服務器上,並且該IP被服務器的其他用戶(網站)發送垃圾郵件而被禁止/阻止。
嘗試添加SPF記錄。
確保將信封FROM(又名返回路徑)設置為您有權訪問的有效電子郵件地址。 如果您在垃圾郵件文件夾中沒有看到該郵件,則該郵件應該被退回; 退回郵件可能提供有關郵件未通過的線索。
我會嘗試在您的郵件功能中包含您自己的標頭
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Date: ". date('r'). " \r\n";
$headers .= "Return-Path:youremail@domain.com\r\n";
$headers .= "Errors-To:youremail@domain.com\r\n";
$headers .= "From:youremail@domain.com <youremail@domain.com>\r\n";
$headers .= "Reply-to:youremail@domain.com \r\n";
$headers .= "Organization: YourOrg \r\n";
$headers .= "X-Sender:youremail@domain.com \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "X-MSMail-Priority: Normal \r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
mail($to,$subject,$body,$headers);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.