2013-01-16 22 views
0

我在我的網站中使用一個簡單的郵件功能作爲聯繫表單。php mail()函數檢測爲垃圾郵件

$name = stripslashes($_POST['name']); 
$email = trim($_POST['email']); 
$text = stripslashes($_POST['message']); 

$message = '<html><body>'.nl2br($text)."</body></html>"; 
$mail = mail("[email protected]", "Contact Form", $message, 
    "From: ".$name." <".$email.">\r\n" 
    ."Reply-To: ".$email."\r\n" 
    ."X-Mailer: PHP/" . phpversion() 
    ."MIME-Version: 1.0\r\n" 
    ."Content-Type: text/html; charset=utf-8"); 

電子郵件發送但它總是被檢測爲垃圾郵件這是不好的。 可能是因爲「FROM」是表單中訪問者給出的電子郵件。

如何解決這個問題?

回答

1

請勿將用戶的電子郵件地址用作From標頭。它會給你與垃圾郵件過濾器不一致的結果,並在你的情況下,它引入了頭注入漏洞。而是使用有效的靜態郵箱(實際存在 - 最好在您發送的同一個域中)。

您錯過了某些標頭的\r\n後綴,即X-MailerContent-type

我建議檢查您的服務器的IP地址,它可能被列入黑名單或列爲垃圾郵件,這將導致一些垃圾郵件過濾器自動拒絕或轉儲垃圾文件夾中的所有內容。共享主機上可能會出現這種情況,即使您從未從您自己的包中發送過垃圾郵件,也可能是服務器上的其他託管帳戶。