为什么这个php邮件脚本不起作用?

时间:2011-08-04 02:54:49

标签: php html email

我制作了一个发送邮件的PHP脚本。它工作正常,直到我改变它所以它发送的东西作为HTML而不是纯文本。但是,它不起作用。脚本本身返回成功,但我没有收到电子邮件。我检查了我的垃圾邮件文件夹。谁能明白为什么这不起作用?感谢

<?php
$to  = $_POST["mail"];
$subject = 'Registration at Campatet';
$message = '
<html>
<head>
  <title>Registration at Campatet</title>
</head>
<body>
  <p>Thank you for registering at Campatet!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";

$headers .= "From: no-reply@campatet.com" . "\r\n";

if(mail($to, $subject, $message, $headers)){
echo "Success sending e-mail to: <b>".$to."</b>";
}
else{
echo "There was a error";
}
?>

3 个答案:

答案 0 :(得分:2)

将此作为您的唯一标题:

$headers  = "Content-type: text/html; From: no-reply@campatet.com";

答案 1 :(得分:1)

首先,尝试删除行

$headers  = "MIME-Version: 1.0" . "\r\n";

你确定post变量正确接收它的地址吗?尝试删除它并将其替换为您尝试使用的电子邮件地址。

您是否能够成功地从您的网站发送邮件?

答案 2 :(得分:1)

指定不带Reply-To标头的电子邮件标头通常被视为怀疑垃圾邮件的理由。您不想要回复并不重要,只需指定Reply-To标题即可。

$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= 'From: no-reply@campatet.com' . "\r\n" . 'Reply-To: no-reply@campatet.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion();