我已经设置了一个基本字段的联系表单。表单将发送给站点所有者,并将消息发送给提交表单的客户。该功能有效,但始终将消息发送到垃圾文件夹。我的标题是否有问题,或者只是热门垃圾设置。
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
$headers .= "From: contact@mysite.com\r\n";
mail($to, $subject, $message, $headers)or die("mail error");
邮件是HTML电子邮件,只是一种更好的显示邮件的方式。同样在我的电子邮件帐户中,而不是显示我的varable,它说'CGI Mailer' - 令人困惑。
更新 - 不再适用
//mail customer
$from = 'donotreply@mysite.co.uk';
$subject = 'Your message has been recieved.';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= 'From: My Site <'.$from.'>' . "\r\n";
$msg = '
<html>
<head>
<link href="http://linktocss/.../etc" rel="stylesheet" type="text/css" />
</head>
<body>
formatted message...
</body>
</html>
';
mail($email, $subject, $msg, $headers)or die("mail error");
答案 0 :(得分:2)
这对我有用,并没有最终出现在SPAM / Junk中,而是出现在我的收件箱中。
<?php
//mail customer
$from = 'donotreply@mysite.co.uk';
$to = "email@example.com";
$subject = 'Your message has been received.';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: The Sending Name <$from>\r\n";
$msg = '
<html>
<head>
<link href="http://linktocss/.../etc" rel="stylesheet" type="text/css" />
</head>
<body>
formatted message...
</body>
</html>
';
mail($to, $subject, $msg, $headers)or die("mail error");
?>
脚注:我注意到您使用的是外部样式表。 Google等许多电子邮件服务都不会提供这些服务。最好使用inline styling
来获得更好/更理想的结果。
(最可能的)原因(根据您发布的代码)为什么您的邮件最终在垃圾邮件中是您的标头无效。
您已将rn
聚集在一起,而不是使用\r\n
请改用:
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: contact@mysite.com\r\n";
mail($to, $subject, $message, $headers)or die("mail error");
或者更好,使用:取自PHP website's mail() function
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: contact@mysite.com\r\n";
mail($to, $subject, $message, $headers)or die("mail error");
答案 1 :(得分:1)
现在,电子邮件客户端和服务器对发送服务器的电子邮件执行大量检查,例如反向DNS查找,灰名单和whatevs。所有这些测试都将失败,使用php mail()函数。如果您使用动态IP,则更糟糕。
使用PHPMailer-Class并将其配置为使用smtp-auth以及配置良好的专用SMTP服务器(本地SMTP服务器或远程服务器),您的问题就会消失。