php mail()函数被检测为垃圾邮件

时间:2013-01-16 11:03:11

标签: php

我在网站上使用简单的邮件功能作为联系表格。

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

$message = '<html><body>'.nl2br($text)."</body></html>";
$mail = mail("info@domain.com", "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”是访问者在表单中给出的电子邮件。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

请勿将用户的电子邮件地址用作From标题。它会为您提供垃圾邮件过滤器的不一致结果,在您的情况下,它会引入标头注入漏洞。而是使用有效的静态邮箱(实际存在 - 最好与您发送的域相同)。

您错过了某些标题上的\r\n后缀,即X-MailerContent-type

我建议检查服务器的IP地址,它可能被列入黑名单或列为垃圾邮件,这会导致某些垃圾邮件过滤器自动拒绝或转储垃圾文件夹中的所有内容。这可能是共享主机上的情况,即使您从未从自己的包中发送垃圾邮件,服务器上的其他主机帐户也可能有。

答案 1 :(得分:0)

检查此链接指向StackOverflow上的帖子:https://stackoverflow.com/a/2573286/1983368 垃圾邮件主要是从接收端检测到的。