繁体   English   中英

PHP 邮件 function 有时工作

[英]PHP mail function works sometimes

我正在编写一个脚本,需要通过 PHP 邮件 function 发送电子邮件。 如下所述,它在向 gmail 帐户发送电子邮件时有效,但不适用于我域上的帐户。 我们正在运行 Exchange 服务器。 截至目前,电子邮件是从 _www@server 发送的。 有谁知道 php 邮件和 Exchange 的问题(或者甚至可能是以下划线和 Exchange 开头的电子邮件地址??)? 或者这里可能还有另一个问题? 无论如何,邮件 function 都会返回 true。

谢谢,

杰夫

$user = $_POST['email'];

$to = "someone@domain.org";

$subject = "Request to Reset EduTube Password";

$body = "Thank you " . $_POST['email'] . " for using the EduTube Password Reset System.\n\n";
$body .= "Please click the following link, or copy & paste it into your browser to reset your password.\n\n";
$body .= "http://testing.domain.org/reset.php?user=" . $user;

$headers = "From: someone@domain.org";

$from = "EduTube Password Reset System";

if (mail($to, $subject, $body, $headers)){

echo "Your email has been sent.  Please check your inbox shortly.";
echo "<br/><a href='http://testing.domain.org'>Click</a>";

}

mail() 的传递 function 在将您的邮件交给 SMTP 服务器时结束。 它的唯一职责是在现实世界中将您的信封放入角落的邮箱中。 邮政服务的 rest(清空那个盒子,通过处理中心运行它,将它飞到收件人的国家/城市等......)完全不在 mail() 的 scope 之外。 只要信封落入邮箱,mail() 就会返回 true 并假装它已送达。

所以...检查你的 SMTP 服务器的日志,看看邮件到底发生了什么。 也许它被接收者标记为垃圾邮件并被退回。 也许它卡在某处的队列中,等等......只有日志会告诉你这一点 - 你在 PHP 中可以看到/做的任何事情都是无用的,因为 PHP 和 mail() 可能只做 Z0C83F57C3786A0B4A39EFdeCZ 发送进程的 1%,7EBCZ39EFdeC其他 99% 有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM