我使用我的电子邮件地址和下面的脚本测试了此脚本,但是在更改电子邮件地址后,脚本将无法正常工作。然而,我已将电子邮件地址(在脚本中无法使用的地址)复制并粘贴到我的天空电子邮件客户端,并发送了一封有效的电子邮件。
这是脚本(请注意,此脚本尚未检查或验证)
$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');
}
我尝试过不同的标题,但这也行不通。
答案 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));
?>