2011-11-28 152 views
0

我想弄清楚用户何时打开我发给他的电子邮件。我正在发送带有图像的HTML电子邮件。该图像由通用处理程序处理。目前这个处理程序没有被击中。这是实现我的目标的好方法吗?如何检查用户是否打开电子邮件?

public void ProcessRequest(HttpContext context) 
     { 
      byte[] byteArray = System.IO.File.ReadAllBytes(@"c:\temp\Desert.jpg"); 
      context.Response.Clear(); 
      context.Response.ContentType = "image/bmp"; 
      context.Response.BinaryWrite(byteArray); 
     } 

邮件正文如下:

"<html><head><title></title></head><body><form name='form1' method='post' action='Default.aspx'><div><img id='Image1' src='ImageHandler.ashx?img=1' style='border-width:0px;' /></div></form></body></html>"; 
+0

这可能不是100%完美。 AFAIK大多数电子邮件客户端首先会阻止图像,并且会按需加载。 – Shoban

+1

我不知道ASP,所以我只是评论一下:在电子邮件阅读器上进行间谍活动通常被认为是不好的口味,因为它牵涉到隐私问题。也就是说,邮件系统有办法请求(注意:不要求)正在打开的邮件的通知,并且应该优先于侵入隐私的图像技巧。 – ibid

+0

这样的事情让我很高兴我的电子邮件程序甚至不会尝试加载这样的图像。这是*无关您的业务*无论何时和当我阅读我的电子邮件。无论如何,这是我的观点... –

回答

0

几年前,我面临着同样的问题。尽管这是一个商业需求,但我仍然使用相同的确切方法,因此对于公司的每个成员都允许允许来自此特定电子邮件地址的图像。所以每次有人打开电子邮件时,通用处理程序都会改变数据库中的某些内容,并且我们知道谁打开了电子邮件。尽管如此,这受到了限制。使用Outlook的用户必须双击电子邮件才能正常工作。预览电子邮件是不够的,出于某种原因,我目前不记得。尽管这是一种技巧,但如果这不是公司的电子邮件,那么最好的办法是实际发送一个超链接。那些对此感兴趣的人将点击它,你将能够看到谁真正看到了你的电子邮件。如果没有,我不会推荐这种方法,因为同上提到的这是一种隐私侵入性。祝你好运!

0

由于隐私问题日益严重,大多数电子邮件客户端默认都会阻止访问外部数据,但用户可以选择退出此行为。您可以确定用户是否打开了您的电子邮件的唯一方法是让他们访问服务器上的一些内容并记录该特定内容的所有请求,因为大多数电子邮件客户端都被阻止图片电子邮件营销公司试图使用其他方式跟踪like embedding iframes在电子邮件等,

任何技术仍然依赖的条件是用户必须访问发件人服务器上的一些内容,并与不断增加的隐私问题,我不认为那里将成为未来追踪电子邮件的可靠方式

0

您永远无法确定用户是否真的在查看图像,但确保图像实际上链接到您的网站可能是一个主意:

<img id='Image1' src='http://yourserver.com/ImageHandler.ashx?img=1' style='border-width:0px;' /> 
相关问题