了解邮件功能是否发送邮件的最佳实践


best practice to know whether mail function send mail or not

我使用下面的代码片段通过php邮件函数发送邮件。

$mailsent = mail($to_address, $subject, $message, $headers);
    if ($mailsent) 
        return "mail send";
    else
        return "error";

我正在检查$mailsent变量中的布尔值,以确定邮件是否成功发送这是通过php邮件函数查找邮件发送状态的正确做法吗。任何帮助都将不胜感激。感谢

php.net邮件功能描述如下:

如果邮件已成功接受发送,则返回TRUE,否则返回FALSE。需要注意的是,仅仅因为邮件已被接受交付,并不意味着邮件将真正到达预期目的地

这是查看邮件是否被接受发送的正确方法,但不是查看邮件是否确实到达收件人。你可以随时查看你发送的电子邮件中的发送错误电子邮件。

是的,这是正确的做法,这是故障保护实践的一部分。。您应该检查mail()是否返回true,以确定邮件是否已成功发送。

邮件如果从服务器转发,即如果从服务器发送的邮件将返回true,此外,我同意Akam的评论。邮件没有必要成功发送。(这确认了发送的邮件。)

我给出了一个更长的片段,在提交时检查只有这封邮件会被发送,你可以忽略这个。。

<?php
if(isset($_POST['submit'])) {
    $to = "testreceiver@mail.com";
    $subject = "Portfolio Contact";
    $name_field = $_POST['name'];
    $email_field = $_POST['email'];
    $message = $_POST['message'];
    $headers = "From: $email_field";
    $body = "From: $name_field'n E-Mail: $email_field'n Message:'n $message";
    $success = mail($to, $subject, $body, $headers);
    if ($success) {
        echo "Mail has been sent!!!!";
        // redirect to thank you page here
    }
    else {
        echo "Message failed";
    }
} else {
echo "Malfunction alert!";
}
?>