php邮件通知

时间:2012-10-22 10:24:54

标签: php forms email

好的我是php编码的新手,我正在处理一个表格邮件php(一个内容被邮寄到电子邮件地址的表格)代码工作正常。现在我想知道是否有办法通知访问者邮件的成功或失败。 (在表单页面中动态添加一行,提到“成功”或“再次尝试失败”。希望我已经足够清楚了。

这是代码

    <?php

    $name = $_POST["name"]; 

    $company = $_POST["company"]; 

    $email = $_POST["email"]; 

    $contact =$_POST["contact"]; 

    $require = $_POST["requirement"]; 


    $message = "Name :".$name."\n"."Company  :".$company."\n"."Email id".$email."\n"."Contact no :".$contact."\n"."Requirement : ".$require;

    $subject ="Subject Matter Here";

    $to = "abc@xyz.com";

    if(mail($to, $subject,$message)){
echo "We Received Your enquiry, We'll get back to you soon";
     } 
      else{ 
echo "there were some errors sending enquiry, please try again";
     }




      ?>

3 个答案:

答案 0 :(得分:3)

$send = mail($to, $subject, $message);

if(!$send){
    echo 'Failed to send!';
}

mail功能:

  

如果邮件成功接受传递,则返回TRUE,FALSE   否则。

答案 1 :(得分:0)

mail函数返回一个表示成功的布尔值:

$result = mail(...)
if ($result) {
    echo 'Success';
} else {
    echo 'Failure try again';
}

如果mail()返回false,您肯定知道不会发送电子邮件。如果mail()返回true,则您的邮件服务器已接受该电子邮件,但仍可能无法传递。您的邮件服务器尝试将其发送到另一个邮件服务器,这可能会拒绝该邮件。您将收到退回邮件,但由于这不会立即发生,您无法在表单上显示结果。

如果您想(更)确定电子邮件已发送,您必须自己连接到目标主机。获取域的MX记录,连接到STMP服务器并将其直接发送到目标服务器。

答案 2 :(得分:0)

您可以尝试查看herehere

并像这样使用它:

if (!mail(...)) {// Reschedule for later try or panic appropriately!}

mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

重要的是要注意,仅仅因为邮件已被接受发送,并不意味着邮件实际上会到达目的地。