0

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

$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”是访问者在表单中提供的电子邮件。

如何解决这个问题?

4

2 回答 2

1

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

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

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

于 2013-01-16T11:11:39.943 回答
0

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

于 2013-01-16T11:06:46.523 回答