我正在编写一个脚本,需要通过 PHP 邮件功能发送电子邮件。正如下面所写,它在向 gmail 帐户发送电子邮件时有效,但不是我域中的帐户。我们正在运行 Exchange 服务器。截至目前,电子邮件是从 _www@server 发送的。有谁知道 php 邮件和 Exchange 的问题(或者甚至可能是以下划线和 Exchange 开头的电子邮件地址??)?或者这里可能还有另一个问题?无论如何,邮件函数都会返回 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() 的传递功能在将您的邮件交给 SMTP 服务器时结束。它的唯一职责是在现实世界中将你的信封扔进角落里的邮箱。其余的邮政服务(清空那个盒子,通过处理中心运行它,将它飞到收件人的国家/城市等......)完全在 mail() 的范围之外。只要信封落入邮箱,mail() 就会返回 true 并假装它已送达。
所以...检查您的 SMTP 服务器的日志,看看邮件到底发生了什么。也许它被接收者标记为垃圾邮件并被退回。也许它卡在某个地方的队列中,等等......只有日志会告诉你这一点 - 你在 PHP 中看到/做的任何事情都是无用的,因为 PHP 和 mail() 可能只做了电子邮件发送/传递过程的 1%,其他 99% 有问题。
关于PHP 邮件功能有时会起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666791/