65.9K
CodeProject 正在变化。 阅读更多。
Home

追踪电子邮件的打开/阅读

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.14/5 (22投票s)

2006 年 8 月 9 日

3分钟阅读

viewsIcon

152929

downloadIcon

4142

追踪电子邮件的打开/阅读

引言

大多数电子邮件用户每天都会收到一些选择加入的电子邮件。你们中的许多人可能已经注意到,一个营销活动开始了,并发送了大量电子邮件。一开始,您可能对阅读此类广告感兴趣。最终,您停止阅读它们。但是营销公司不会停止向您发送电子邮件,您也没有从邮件列表中选择退出!尽管经过一段时间后,您可能已经注意到该公司停止向您发送更多电子邮件。

问题是,他们停止了他们的活动吗?答案是“可能没有”。那么他们为什么停止向您发送电子邮件?他们知道您不再阅读他们的电子邮件了吗?答案是“可能知道!”“是吗?”——但是他们怎么知道您不再对阅读他们的电子邮件报价感兴趣呢?

背景

这一切都与一种名为“电子邮件追踪”的技术有关。通过电子邮件追踪,营销公司可以追踪您是否阅读了特定的帖子。也就是说,在向您发送电子邮件后,他们可以追踪您是否阅读了这些电子邮件。甚至令人惊讶的是,他们还可以追踪您阅读这些电子邮件的地点和日期/时间(以及来自哪里)!

这真的有可能吗?是的,从技术上讲,追踪电子邮件是否被阅读非常容易!

在我们深入研究之前,我们必须了解只有包含HTML作为其MIME类型一部分的电子邮件才能用于追踪。如您所知,在HTML电子邮件中,我们可以轻松地放入图形。图形可以是很好的图像,也可以只是一个不可见的图像(例如,一个大小为1x1的透明图像)。

当我们将图像放入HTML源代码时,我们编写的内容与以下内容类似

<img src="some-source-onto-your-server.gif"/>

但是,当需要追踪电子邮件的状态时,<img>元素的src属性看起来有点棘手。考虑以下内容

<img src="ImageServer.aspx?imageID=track.jpg& custID=134ghxx34343ai& campID=32434"/>

使用代码

您可以轻松地猜到图像源URL本身(<img>标签的src属性)并未指向图像类型的文件,而是一个要在.aspx文件(也可能是.jsp、.php等)中执行的查询字符串。这就是幕后的一切。ImageServer.aspx.cs中的代码如下所示

private void Page_Load(object sender, System.EventArgs e)
{
    // content type should be resolved programmatically
    Response.ContentType = "image/jpeg";
    if (!IsPostBack) Track();
    Response.WriteFile(GetImageFileByID());
}

当浏览器使用上述查询字符串发送GET方法时,.aspx文件会解析查询,确定用户打开电子邮件进行阅读的用户,然后程序在数据库表中存储一个标志,以指示特定活动中的特定电子邮件已被客户打开。此外,该程序还可以存储其他信息;例如日期/时间信息、远程IP以确定位置信息等。

在我的代码中,我使用了index.aspx文件,就像它是一封之前发送给客户的电子邮件,以模拟在现实生活中发生此类电子邮件追踪的情况。

测试与真实项目

请记住,在真实的生活和适合生产环境的电子邮件活动解决方案中,此实现无法提供最佳性能。通常,对于如此大的真实项目,需要实现一个功能齐全的追踪服务器,该服务器就像一个Web服务器(几乎就像IIS本身)。

最终想法

上述程序可能无法追踪以确定特定电子邮件是否已打开的唯一原因 - 如果电子邮件客户端(例如Yahoo或MSN)禁用了下载包含HTML内容的电子邮件的图形。在Yahoo Mail中,用户可以设置他们的首选项,不下载其电子邮件的图形。在这种情况下,Yahoo服务器会调整<img>标签,因此不会从其他服务器下载任何图形。因此,由于没有图像要下载,营销代理商的追踪也不会发生!!!


这就是关于电子邮件追踪的全部内容!!

© . All rights reserved.