【问题标题】:How to get an email delivery acknowledgement using PHPMailer?如何使用 PHPMailer 获得电子邮件发送确认?
【发布时间】:2015-12-14 07:21:52
【问题描述】:

我正在使用 PHPMailer 发送电子邮件,我需要纠正我的哪些电子邮件已成功到达收件人的收件箱。是否有任何方法可以获取每封已发送电子邮件的确认或送达回执?

如果可能,我需要将这些电子邮件 ID 插入到我的 MySQL 数据库中。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我没有得到任何具体的逻辑来做这件事,现在我只是在我的网络邮件上收到退回的电子邮件,但对发送的投递报告一无所知。

标签: php email phpmailer


【解决方案1】:

有几种方法可以解决这个问题,但都不可靠。

您可以通过添加Disposition-Notification-To 标头来请求收货。 PHPMailer 对此有内置支持:

$mail->ConfirmReadingTo = 'confirmations@example.com';

支持此功能的客户并不多,即使支持,也可能出于安全原因将其禁用。通常它只可能在公司内部网中工作。

其次,您可以在消息正文中添加打开跟踪器或信标图像,以便当 clint 打开消息时,图像的加载会告诉您打开了哪条消息。您需要在 URL 中嵌入收件人和/或消息的唯一标识符,例如电子邮件地址和时间戳的哈希值。同样,这也不可靠,因为大多数客户端默认情况下都关闭了图像加载,或者图像可能被入站邮件扫描仪打开,从而给您带来误报。

最有效的方法是真正了解您的邮件服务器,并正确处理退回邮件,但即便如此,仅仅因为邮件已成功发送到收件人的邮件服务器并不会告诉您它是否到达了他们的收件箱,也不会告诉您是否被看到或打开过。

【讨论】:

  • 谢谢 Synchro 这对阅读邮件来说很好,但我需要收据才能投递,我需要知道我的邮件是否已到达收件人的邮箱。
  • 我已经介绍过了,正如我所说,你永远无法可靠地知道这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多