3

好的,我是 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";
     }




      ?>
4

3 回答 3

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

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

邮件功能:

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

于 2012-10-22T10:27:37.483 回答
0

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

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

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

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

于 2012-10-22T10:30:04.427 回答
0

你可以试试看这里这里

并像这样使用它:

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

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

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

于 2012-10-22T10:32:13.630 回答