我使用下面的代码片段通过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!";
}
?>