PHP邮件未发送

3

这是我的代码

$subject = "Welcome to Last Alliance Standing";
$message = "$name Welcome to Last Alliance Standing, Your account has been registered and you are now able to login and play";
$headers  = "From: Team Laser<noreply@lastalliancestanding.com>\r\n";
$headers .= "X-Mailer: Drupal\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

if (mail($email, $subject, $message, $headers)) {   
    header("location: passwordrequest-success.php");
    exit();
} else {
    echo "Not Sent";    
}

电子邮件并不总是发送成功,有时会发送成功,但有时会收到“未发送”错误提示。

你有访问日志文件甚至拥有 root 访问权限吗?另外,你使用的是什么系统? - dualed
我可以访问日志文件,但由于这是一个与Justhost共享的服务器,所以没有root访问权限。 - Craig Weston
他们说的是:“很抱歉,我们不提供此问题的支持。我们仅为您的托管环境提供支持,并建议查看您程序的支持论坛、文档或咨询网络开发人员以获取进一步帮助。”我现在正在运行页面,它又可以工作了,但过几个小时后,它会再次停止,因此让人感到困惑。 - Craig Weston
3个回答

0

首先,您需要检查您的服务器是否支持邮件功能。之后,您可以将mail()放入try{}catch(){}中以捕获错误代码 :)


我从未在Google中使用过try/catch,快速搜索后得到了以下代码:try {mail($email, $subject, $message, $headers); echo '没有错误';} catch (Exception $e) { throw new Exception('出现了一些问题', 0, $e); }但是它会执行到“没有错误”的部分,而邮件并没有被发送?我猜测这是一个代码错误,但在网上找不到真正的帮助。 - Craig Weston
所以,你确定你的服务器支持邮件功能了吗? - redwind
是的,有时它能正常工作,然后停止工作,然后又能正常工作。 - Craig Weston
我不确定出现了什么错误。在这种情况下,询问主机提供商是否支持邮件功能,并要求他们提供使用它的示例代码。 - redwind

0
感谢那些给出建议的人,我今天已经第四次联系了帮助台,最终有所进展。由于这是一个共享账户,其中一个其他账户一直在发送大量垃圾邮件,现在已经修复了。再次感谢大家的帮助。

0

如果您的主机使用Windows系统,更改此行可能会有所帮助

$headers  = "From: Team Laser<noreply@lastalliancestanding.com>\r\n";
$headers  = "From: noreply@lastalliancestanding.com\r\n";

同时,你的$email不应该是这种形式:别名 <mail@ress.com>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接