Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何知道是否使用PHP发送了电子邮件?_Php_Email - Fatal编程技术网

我如何知道是否使用PHP发送了电子邮件?

我如何知道是否使用PHP发送了电子邮件?,php,email,Php,Email,我通过PHP脚本发送了一大堆电子邮件,我想分析每封邮件的结果,这样我就知道它是否被发送了 无论如何,通过PHP实现这一点是没有什么好方法的——但是,您可以嵌入一个包含邮件地址和日志请求的url的图像。如果邮件已发送,则可以轻松检测到,检测是否已发送则是另一种情况 您可以在电子邮件中实现一个1px映像,该映像托管在您的站点上。图像当然是由PHP创建的,因此您可以给它一个唯一的ID来检测图像是否已加载。如果禁用其上的缓存,甚至可以检测邮件的读取频率 创建如下图像: header('Conten

我通过PHP脚本发送了一大堆电子邮件,我想分析每封邮件的结果,这样我就知道它是否被发送了


无论如何,通过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这不会告诉你邮件是否真的送达了。这只是一个指标。