如何使用PHPMailer获取电子邮件递送确认?

时间:2015-12-14 07:21:53

标签: phpmailer

我正在使用PHPMailer发送电子邮件,我需要纠正我的哪些电子邮件已经成功到达收件人的收件箱。有没有办法获得每封电子邮件的确认或送货收据?

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

1 个答案:

答案 0 :(得分:2)

有几种方法,其中没有一种是可靠的。

您可以通过添加Disposition-Notification-To标头来请求送达回执。 PHPMailer内置了对此的支持:

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

没有多少客户支持这一点,即使他们这样做,也可能出于安全原因将其禁用。通常,它只能在公司内部网中工作。

其次,您可以在邮件正文中添加开场跟踪器或信标图像,以便在克隆打开邮件时,图像的加载会告诉您打开了哪条邮件。您需要为URL中的收件人和/或邮件嵌入唯一标识符,例如电子邮件地址和时间戳的哈希值。同样,这是不可靠的,因为大多数客户端默认关闭图像,或者图像可能由入站邮件扫描程序打开,给你误报。

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