3

我正在使用带有 ActionMailer 的这个应用程序使用 rails 2,但这是关于电子邮件的一般问题。

当我们发送电子邮件时,我将与电子邮件对应的记录保存在数据库表中。我想跟踪人们是否阅读过这些电子邮件,并且想知道最好的方法。在最初的谷歌搜索中,似乎我偶然发现了垃圾邮件发送者和电子邮件客户端之间的持续战斗!

我的第一个想法是使用“已读回执”标头,但我知道很多客户不支持这一点,因此不可靠。在那之后,我读到了在邮件中包含图像的策略,并检测到该图像正在加载。我在想我可以在图像 url 中放置一个带有电子邮件记录 ID 的参数,这样当我收到对该图像的请求时,我可以查看它是否有(例如)email_id 参数,如果有,标记相应的电子邮件就像被读过一样。

但是,后来我想起许多客户对这种策略很明智,并专门询问邮件的查看者是否要显示图像。显然他们可能会说不。

我是否正确地认为我不能在我的邮件中提取其他资源,例如样式表?因为如果我能把它们拉进去,我可以做同样的把戏,但使用样式表而不是图像。

感谢任何建议,最大

4

3 回答 3

1

外部托管的样式表通常以与图像相同的方式处理。客户端不会在没有提示用户的情况下下载它们,如果这适用于 HTML 格式的电子邮件。

需要考虑的一件事 - 您要确定电子邮件是否已被阅读,不一定是刚刚收到,对吧?格式化您的电子邮件,使其在不查看图像的情况下无法轻松阅读,并在顶部包含“在浏览器中查看”链接。跟踪图像和页面格式视图,我认为您将有一个相当可靠的方法来测量实际读取。

于 2011-07-18T16:41:29.877 回答
1

有点晚了,但我们遇到了类似的问题。

我们正在跟踪电子邮件中包含的指向我们网站的链接。像您一样,我们通过发送每封电子邮件都有一个数据库记录来做到这一点。我们为每封电子邮件生成了一个唯一的哈希键,并将其作为参数包含在电子邮件中的所有链接中。

然后我们简单地有一个 before_filter 来查找参数并通过使用唯一哈希来识别正确的电子邮件记录来记录正确的电子邮件记录。

我们使用唯一的散列键(而不是数据库的主键)只是为了更安全/可靠一点。

显然,这种方法只能帮助我们跟踪我们的电子邮件产生的点击量(而不是如果它们已经被阅读过),但它仍然很有用,因为我们可以看到我们的哪些用户点击了哪些链接。

于 2012-06-21T10:10:39.897 回答
0

我们在这方面也遇到了重大问题。

我们有任务周门户,用户可以在其中创建任务(例如粉刷我的房子),然后我们邀请画家给任务创建者一个粉刷他的房子的价格。

为此,我们有一个非常先进的电子邮件系统,它会发送邀请,如果他们接受邀请,我们会向他们发送任务创建者的联系信息。

我们需要能够跟踪电子邮件是否被打开,然后一旦打开,我们就知道该公司获得了联系信息,我们现在可以向任务创建者发送另一封电子邮件,告诉他们可以联系到他们由那家公司。

问题是跟踪电子邮件是否被打开根本不可靠。有不同的系统,比如 msgtag(它不支持广泛的邮件客户端,如 yahoo 和其他主要客户端),我们的电子邮件 API 客户端(弹性电子邮件)甚至提供一些 API 回调函数来告诉我们是否打开了每封电子邮件或反弹或其他。但同样,它不可靠。要跟踪它是否打开,弹性电子邮件只包含一个 1x1 像素的图像并跟踪它是否打开。因此,如果人们不单击“在此电子邮件中显示图像”,则不会将其跟踪为已打开。

所以基本上我们有两个选择。

  1. 将内容的重要部分打印在图像上,他们必须查看以获取我们想要跟踪的信息(在这种情况下为联系信息)

  2. 只需在电子邮件中添加一个链接“单击此处获取联系信息”,然后跟踪是否单击了该链接。

因此,总而言之,“跟踪是否打开”是完全无用且不可靠的,除非您可以完全控制您的收件人正在使用哪些电子邮件客户端以及他们如何使用它们(例如,如果他们都是您的员工或其他人)。

于 2013-07-19T08:49:45.977 回答