失败的电子邮件传输的PHP联系人表单回退


PHP Contact Form fallback for failing email transmission

我现在正在开发我的新商业网站。我正在实现一个简单的联系表格,并通过电子邮件将所有需要的数据发送到我的电子邮件地址。

如果由于任何原因电子邮件传输不起作用,我不想显示错误消息,但如果可能的话,请尝试以不同的方式接收请求。

我已经考虑过一些备用电子邮件地址(在其他服务器上)来发送请求。但我对这个想法不太满意。你有更好的吗?我是不是太害怕这种不太可能的情况了?

假设您使用的是php mail();函数。

$email = mail($to,$subject,$message);
if($email === false){
    //Store that email in database
    //Notify yourself with another email
}

但这种验证并不意味着你的电子邮件会送达。它取决于你的邮件服务器来发送电子邮件,它可能会失败,你对此无能为力。

另一种选择是使用Pear php邮件包https://pear.php.net/manual/en/package.mail.mail.send.php

使用它,你可以使用其他服务器的SMTP,例如gmail,它不太可能失败。如果由于某些原因它失败了,你应该在发送框中找到那封邮件(我对此不确定)

您还可以使用其他邮件服务来保证邮件送达。

正如您所问

PHP mail()不应用于批量电子邮件。PHP表示

值得注意的是,mail()函数不适用于更大的循环中的大量电子邮件。此功能打开和关闭SMTP套接字,这不是很有效。发送大量电子邮件,请参阅»PEAR::Mail和»PEAR::Mail_Queue包裹。