我有一个非常简单的联系表单和一个非常简单的php邮件脚本。但是当我尝试将其发送到指定的电子邮件地址时,我没有收到测试邮件。
以下是我的代码:
HTML表单
<div class="form" >
<form action="mail.php" method="post">
Email: <input type="text" name="email" size="38"><br>
詢問主旨:<input type="text" name="subject" size="36"><br>
<div class="queryTitle">
詢問內容
</div>
<br>
<textarea name = "message" rows="6" cols="37">
</textarea>
<br>
<input name = "submitted" type="submit" value="傳送">
</form>
</div>
Php脚本:
<?php
if (isset($_REQUEST['submitted'])) {
if (empty($errors)) {
$from = "From: ".$_REQUEST['email']."\r\n"; //Site name
// Change this to your email address you want to form sent to
$to = "verymeanguy2@gmail.com";
$subject = $_REQUEST['subject'];
$message = $from." ".$_REQUEST['message'];
mail($to,$subject,$message,$from);
}
}
?>
Gmail是否阻止了我的邮件?如果是这样,我如何设计一个可以将邮件发送到热门邮件的脚本?
提前致谢!
杰森
PS:我正在使用heliohost的免费Stevie服务器托管我的,如果这说明的话。
lolka_bolka:是的,调用了mail()并在邮件功能打印前添加了一个回显1.它不是垃圾邮件。 Len_D:它确实打印了任何东西,所以我认为邮件被调用并返回true。安东尼:我该如何确保?
我只想报告我的测试结果。似乎Gmail出于某种原因阻止雅虎邮件地址发送者。如果标题是Gmail地址,甚至是伪造的地址,Gmail都可以免费获得。另一方面,雅虎邮件可以毫无问题地接收邮件。任何人都可以了解这一点吗?
答案 0 :(得分:1)
当邮件返回true(或1)时,表示它正确地执行了它所尝试的操作。但并不总是意味着它发送邮件。
mail()函数使用“sendmail”实际发送电子邮件。 如果sendmail配置为发送邮件,那就会发生什么(一切都顺利)。
然而,通过defult,sendmail将邮件存储在服务器中。它“模拟”一个真正的sendmail。
根据我的个人经验,我建议PHPMailer。它易于使用,检查错误要容易得多(检查电子邮件是否已发送,如果没有,请获取有关问题的信息)。
示例:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.server.com";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "email@domain.com";
$mail->Password = "password";
$mail->From = "email@domain.com";
$mail->FromName = "auto";
$mail->AddAddress("example@example.net", "Name of example user"); //send to....
$mail->IsHTML(true);
$mail->CharSet = "UTF-8";
$mail->Subject = "=?UTF-8?B?".base64_encode(stripslashes($asunto))."=?=";
$mail->Body = stripslashes($mensaje);
if(!$mail->Send()){
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
return true;
} else {
echo "Message has been sent";
return false;
}
希望它有所帮助:)