我无法从php邮件功能接收

时间:2014-12-10 15:00:53

标签: php email

我有一个非常简单的联系表单和一个非常简单的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都可以免费获得。另一方面,雅虎邮件可以毫无问题地接收邮件。任何人都可以了解这一点吗?

1 个答案:

答案 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;
}

希望它有所帮助:)