PHP邮件脚本,电子邮件未通过

时间:2013-11-01 12:30:55

标签: php email

我使用我的电子邮件地址和下面的脚本测试了此脚本,但是在更改电子邮件地址后,脚本将无法正常工作。然而,我已将电子邮件地址(在脚本中无法使用的地址)复制并粘贴到我的天空电子邮件客户端,并发送了一封有效的电子邮件。

这是脚本(请注意,此脚本尚未检查或验证)

$email = $_POST['email'];
$subject = $_POST['subject'];
$name = $_POST['name'];
$message = $_POST['message'];
$subject = addslashes(htmlspecialchars($subject));
$name = addslashes(htmlspecialchars($name));
$message = addslashes(htmlspecialchars($message));
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: ".$name." <".$email.">";
$headers[] = "Subject: {".$subject."}";
$headers[] = "X-Mailer: PHP/".phpversion();
$to = "example@example.com";
$email = mail($to,$subject,$message,implode("\r\n", $headers));
if($email){
header('location: thankyou-email.php');
}
else{
header('Location: contact-us.php');
}

我尝试过不同的标题,但这也行不通。

1 个答案:

答案 0 :(得分:0)

尝试使用$ headers [0],$ headers [1]等。 此外,gmail会将您的电子邮件保存在缓冲区中,这样当您收到第一封电子邮件时(在更正您的代码之后),您还可能会收到许多其他邮件,并使用$ headers []发送。

我的工作代码是:

    <?php
    $subject = "aaa";
    $name ="aaa";
    $message = "aaa";
    $subject = addslashes(htmlspecialchars($subject));
    $name = addslashes(htmlspecialchars($name));
    $message = addslashes(htmlspecialchars($message));
    $headers = array();
    $headers[0] = "MIME-Version: 1.0";
    $headers[1] = "Content-type: text/plain; charset=iso-8859-1";
    $headers[2] = "From: ".$name;
    $headers[3] = "Subject: {".$subject."}";
    $headers[4] = "X-Mailer: PHP/".phpversion();
    $to = "My_email@gmail.com";
    mail($to,$subject,$message,implode("\r\n", $headers));
    ?>