1

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

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

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

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

4

2 回答 2

3

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

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

如果你需要确定,做显而易见的事情:在邮件中包含一个需要点击的链接。

否则,假设您的本地 sendmail 正在工作(如果确实如此,可能会监控),然后简单地发送邮件。

于 2013-10-22T22:55:43.130 回答
1

选项 1:套接字连接:阅读 RFC,然后编写符合标准的SMTP 客户端程序。[除非你想放弃几个星期的生活,否则不要打扰]

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

于 2013-10-22T22:55:01.220 回答