PHP => if(mail)+ timeout?

时间:2011-04-01 13:18:36

标签: php email

我在bluehost上运行一个简单的webform,在提交时,会将邮件发送到通讯组列表。

最近邮件服务器崩溃了,点击提交按钮后我的php邮件脚本挂起了。用户再次尝试,页面再次挂起。稍后当邮件服务器恢复时,它会发送多份邮件副本。

我的问题是,是否有一种简单的方法可以在脚本上设置某种超时,这样如果一段时间过去而邮件服务器没有确认请求,或者如果不成功的话,尝试超过预设数量,然后脚本将停止尝试发送邮件?

我的剧本:

// try to send email
if (mail($to,$subject,$msg,$headers)) {
header('Location: complete.php');
} else
{
header('Location: incomplete.php');
}

感谢您提供的任何建议, 丰富。

PS。虽然我确实将.htaccess文件保存到本地目录,但我无权更改服务器上的任何设置。

1 个答案:

答案 0 :(得分:0)

这是不可能的。你可能想看看phpmailer,它比php提供的内置mail()函数更先进。

如果邮件已经提交给邮件服务器,则

mail()始终返回true(实际上,当邮件服务器关闭时,不应该挂起,但返回false)。