我正在使用内置支持在php中发送邮件。
$status=mail($to,$subject,$message,$headers,"-f $from");
我在LAMP服务器上,我们使用sendmail Unix实用程序。 php mail()如果已将邮件移交给sendmail,则返回true状态,因此我们无法确定邮件是否已成功发送。现在我想要的是在php和sendmail之间建立一些套接字连接,以便我可以获得“真实状态”,无论邮件是否已被发送。
我是PHP的新手。这是我在PHP中解决的第一个问题的一部分。我戴上眼镜但是我没有准确地知道如何继续前进。指导我如何在PHP结束时获得是否已发送邮件的真实状态?
答案 0 :(得分:3)
如果您检查当地的sendmail恶魔收到了邮件,它将无法到达任何地方。重要的部分是sendmail能够将邮件转发到另一个邮件服务器。
但这实际上也只是事实的一半,因为该服务器不一定是邮件的最终目的地。所以在邮件离开你的sendmail恶魔后,你无法说出邮件是否到达目的地。
如果您需要确定,请做一件明显的事情:在邮件中包含需要点击的链接。
否则,假设您的本地sendmail正在运行(可能是监控,如果确实如此),只需发送邮件。
答案 1 :(得分:1)
选项1:套接字连接:read the RFC,然后编写符合标准的 SMTP客户端程序。 [除非你想要放弃几周的生命,否则不要打扰]
选项2:使用PHPmailer或SwiftMailer或已编写符合标准的SMTP客户端的其他bazillion邮件库之一实际< / em>告诉您邮件是否已成功发送。