我正在编写一个函数来发送邮件给特定用户?
我想要做的是,如果发生错误,我想继续发送邮件,直到邮件发送.
function sendmail() {
$name = mysql_escape_string($name);
$email = mysql_escape_string($email);
$phone = mysql_escape_string($phone);
$content = nl2br(mysql_escape_string($content));
$subject = "mail from ".$name." (".$email.", Ph: ".$phone.")";
$mail = @mail($feedback,$subject,$content,$headers);
if($mail) { echo "Your mailis send"; }
else { echo "We are sorry for the inconvienience, but we could not send your mailnow."; }
}
Run Code Online (Sandbox Code Playgroud)
上面的函数显示错误消息,但我想尝试发送邮件,直到最后发送邮件为止.
Gab*_*iel 18
如果页面无法发送怎么办?守护进程停止,用户输入格式错误的数据,连接丢失,可能写入磁盘,数据库已关闭以进行维护等等.您希望服务器对用户请求做什么?我建议在以后重试失败时设置队列.那里有很多好的队列系统.Cron如果必须重试(这样就不会挂在客户端请求上).记录尝试,如果出现某些错误情况,则通知管理员.
这是运营/基础架构团队的基础,但您可以从一些好的工具和精心设计的错误和异常处理策略开始.继承您代码的人会感谢您.
我一直在阅读实用程序员,我必须强烈推荐它专门处理这个问题.它为您考虑错误/异常处理的方式设置了一个标准,对于我来说,我确实清除了关于错误是什么,异常,断言条件(或不可能的条件)的迷雾.特别是第4章语用偏执狂:
"当每个人真的出去找你时,偏执狂只是好思考" - 伍迪艾伦