我正在通过PHP脚本发送一堆电子邮件,我想分析每个邮件的结果,以便知道它是否被成功投递。有没有办法通过PHP实现这个功能呢?
reply-to
邮箱地址,如果有邮件退回,那就可以肯定地说这条信息未被送达。如果邮件已发送,则可以轻松地检测到,但要检测其是否已送达则是另一回事。
您可以在电子邮件中实现一个1像素的图像,该图像托管在您的网站上。当然,该图像由PHP创建,因此您可以为其分配唯一的ID以便检测该图像是否已被加载。如果禁用缓存,则甚至可以检测邮件被阅读的次数。
创建此类图像的方式如下:
header('Content-Type: image/png');
$im = @imagecreate(1, 1);
$background_color = imagecolorallocate($im, 255, 255, 255); // make it white
imagepng($im,"image.png");
imagedestroy($im);
$id = sha1([ID FROM DATABASE] + salt)
还需要将此信息存储在电子邮件的行中。
然后使用ID链接到图像。
<img src="http://www.example.com/image.php?id=SHA1HASHHERE" />
通过这种方式,您可以跟踪
没有一种真正好的方法 - 但是,您可以嵌入一个包含电子邮件地址和日志请求的url的图像。