我们已经创建了一个使用AWS SES发送批量电子邮件的应用程序。我们能够成功发送电子邮件并使用AWS SNS跟踪开放,点击等指标。我们唯一的问题是在" Opens" SNS正在发送的对象,它总是返回相同的值" Mozilla / 5.0(Windows NT 5.1; rv:11.0)Gecko Firefox / 11.0(通过ggpht.com GoogleImageProxy)"。我们要看的是确定电子邮件的打开位置,如Mobile / Tab / Desktop和浏览器。即使在Chrome中打开电子邮件,它也会以Mozilla的形式返回。在这方面的任何帮助/建议都非常感谢。
其他信息:我发现正确地返回了userAgent"点击"宾语。但不是在" Open"宾语。不知道为什么。我们希望在打开电子邮件时跟踪相同的信息,因为并非所有收件人都点击链接。
答案 0 :(得分:2)
实际上没有办法确定邮件已被打开.¹检测“打开”依赖于检测到邮件被“打开”时获取邮件中嵌入的图像的查看器。
在每条消息的底部,我们插入1像素乘1像素的透明GIF图像。每封电子邮件都包含指向此图像文件的唯一链接;当图像打开时,我们可以准确地确定打开了哪个消息以及由谁打开。 当观看者是Gmail时,用户的浏览器无法获取此图像。
https://aws.amazon.com/blogs/messaging-and-targeting/open-and-click-tracking-have-arrived/
在gmail中打开邮件时,用户的浏览器无法直接获取图像,它会从Google图像代理中获取图像,图像代理会从SES中获取该图像并生成跟踪事件。因此,(via ggpht.com GoogleImageProxy)
。
作为发件人,这不是您可以控制的。
代理可以通过在User-Agent字段中说出自己喜欢的内容来标识自己 - 没有理由相信代理不会创建整个用户代理字符串。搜索该主题的Google似乎确认这是代理始终显示的方式。 Mozilla/5.0
是一个通用的用户代理字符串,并不意味着“我是某种网络浏览器,或者希望服务器相信我。”
¹实际上没有办法 ......好吧,技术上来说,there is,但由于垃圾邮件泛滥,这个标准几乎从未应用于互联网邮件。如RFC-8098中所述,“消息中存在Disposition-Notification-To
标头字段仅仅是对MDN的请求。收件人的用户代理总是可以自由地忽略这样的请求。”< / em>这几乎总是发生什么......没什么。