确定真实的邮件已发送状态(PHP mail())


determine true mail sent status (PHP mail())

我正在使用内置的 php 发送邮件支持。

$status=mail($to,$subject,$message,$headers,"-f $from");

我在 LAMP 服务器上,我们使用 sendmail Unix 实用程序.php mail() 如果它已将邮件移交给 sendmail,则返回真实状态,因此我们无法确定邮件是否已成功发送。现在我想要的是在php和sendmail之间建立一些套接字连接,以便无论邮件是否已发送,我都可以获得"真实状态"。

我对PHP很陌生。这是我在PHP中解决的第一个问题的一部分。我戴上了护目镜,但我不知道如何进一步进行。指导我如何在PHP端获得邮件是否已发送的真实状态?

如果你检查你当地的发送邮件恶魔是否收到了邮件,它不会把你带到任何地方。重要的部分是sendmail能够将邮件转发到另一个邮件服务器。

但这实际上也只是事实的一半,因为该服务器不一定是邮件的最终目的地。因此,在邮件离开您的发送邮件恶魔后,您无法说出邮件是否到达目的地。

如果您需要确定,请做显而易见的事情:在邮件中包含需要单击的链接。

否则,假设您的本地 sendmail 正在工作(可能会监控它是否真的有效),然后只需发送邮件即可。

选项 1:套接字连接:读取 RFC,然后编写符合标准的 SMTP 客户端程序。[除非你想把你生命中的几个星期扔掉,否则甚至不要打扰]

选项 2:使用 PHPmailer 或 SwiftMailer 或其他已经编写了符合标准的 SMTP 客户端的邮件库之一,该客户端实际上会告诉您邮件是否已成功发送。