1

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

这是脚本(请注意,此脚本还没有检查或任何验证)

$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');
}

我尝试过使用不同的标题,但这也不起作用。

4

1 回答 1

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));
    ?>
于 2013-11-01T13:08:28.963 回答