我如何知道是否使用PHP发送了电子邮件?
我通过PHP脚本发送了一大堆电子邮件,我想分析每封邮件的结果,这样我就知道它是否被发送了我如何知道是否使用PHP发送了电子邮件?,php,email,Php,Email,我通过PHP脚本发送了一大堆电子邮件,我想分析每封邮件的结果,这样我就知道它是否被发送了 无论如何,通过PHP实现这一点是没有什么好方法的——但是,您可以嵌入一个包含邮件地址和日志请求的url的图像。如果邮件已发送,则可以轻松检测到,检测是否已发送则是另一种情况 您可以在电子邮件中实现一个1px映像,该映像托管在您的站点上。图像当然是由PHP创建的,因此您可以给它一个唯一的ID来检测图像是否已加载。如果禁用其上的缓存,甚至可以检测邮件的读取频率 创建如下图像: header('Conten
无论如何,通过PHP实现这一点是没有什么好方法的——但是,您可以嵌入一个包含邮件地址和日志请求的url的图像。如果邮件已发送,则可以轻松检测到,检测是否已发送则是另一种情况 您可以在电子邮件中实现一个1px映像,该映像托管在您的站点上。图像当然是由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);
将其存储在名为image.php的页面上(或由您决定)。还可以将电子邮件存储在已发送的数据库中,并为其创建一个唯一的ID(md5或sha1散列会更好)
比如:
$id = sha1([ID FROM DATABASE] + salt)
将其也存储在电子邮件行的数据库中
然后链接到具有ID的图像
<img src="http://www.example.com/image.php?id=SHA1HASHHERE" />
通过这种方式,您可以跟踪您可以检查邮件是否已发送,但检查邮件是否已发送则完全是另一回事
事实上,我想不出任何方法来确认邮件已送达,而不检查邮件是否已被读取,包括从服务器请求并记录为已被访问的1x1.gif,或用户必须访问以查看邮件的完整内容的链接
两者都不保证(不是所有的电子邮件客户端都会显示图像或使用HTML),也不是所有的“已发送”邮件都会被读取
当然,你可以监控你的
回复地址,查看是否有被退回的邮件,这样你就可以肯定地说,的邮件没有被退回。看看这个:是的,我认为检查被退回的邮件是最好的方法。谢谢。因为有一些方法可以跟踪被退回的电子邮件。@LukasLiesis这不会告诉你邮件是否真的送达了。这只是一个指标。