如何实现Mailchimp自动跟踪电子邮件的方法?

时间:2017-05-17 14:03:53

标签: php email

每天都会向用户发送包含所请求提醒的电子邮件。我的目标是在每个标记日创建一个日历,用绿色打开电子邮件。这需要跟踪用户是否在指定日期打开或未打开电子邮件。

Mailchimp在a blog post

中展示了他们的方法
  

当您通过MailChimp发送广告系列时,我们会在HTML电子邮件的底部嵌入一个微小的隐形图片...当有人打开您的电子邮件并查看其中的图片时,   图形从我们的服务器下载,并记录为打开   您的广告系列报告。

将此过程分解为几个步骤:

1)在每个用户特有的电子邮件(与chron作业一起发送)中包含图形 2)编写一个脚本,该脚本在从服务器下载图形时运行,并更改用户历史记录表中的“email_opened”值

所以我的问题:

·#1如何运作?此外,如何创建一个系统,为每个用户自动生成一个独特的图形? 我目前的想法是使用PHP从表中发送图像,如:

<? $img_data = file_get_contents("images/phpimage.png"); header("Content-type: image/png"); echo $img_data; ?>

然后以某种方式将其设置为根据电子邮件地址发送不同的图像。

·脚本#2应该放在哪里以及应该用哪种语言编写?我最初的想法是php和电子邮件,但如果是从服务器下载图形的那一刻,那么肯定它应该是服务器端。这怎么样?

1 个答案:

答案 0 :(得分:1)

要在HTML格式的电子邮件中“包含”图片,您实际需要做的是创建<img>标记,其中src属性包含指向图像文件的URL你的服务器。 (您无法在电子邮件中运行PHP,正如您所设想的那样,顺便说一下。)

为此目的,图像可以是不可见的(使用样式属性,或通过将高度/宽度设置为0),src实际上可以指向Web服务器上接受用户ID的脚本和电子邮件ID作为参数并呈现一个空图像。对于特定用户/电子邮件组合,唯一网址可能类似于http://www.example.com/logEmail?userID=12345&emailID=6789。您从此脚本返回的图像内容并不重要,并且不需要是唯一的 - 请记住,它无论如何都是不可见的。只需返回1px×1px的白色方块。

当脚本运行时,在它返回图像并完成请求之前,它只是同时更新您的数据库,以指示具有给定ID的电子邮件已被具有给定ID的用户读取。

至于语言,这完全取决于您计划托管Web应用程序的方式/位置。您可以在任何流行的服务器端语言中实现您想要的功能。

你链接到的MailChimp文章提出了一个重要的警告 - 如果你以任何理由以纯文本形式发送任何用户的电子邮件,这种技术将无效,如果用户的邮件客户端未设置为下载,它也不会起作用图像(默认情况下,公司Outlook安装通常设置如下,直到用户单击以允许下载它们和/或将发件人标记为安全)。因此,您无法依赖此数据作为用户是否正在阅读电子邮件的100%准确指南。如果你得到特定电子邮件的回复,你可以肯定地说他们打开了它(N.B.“开放”和“阅读”和“理解”绝对不是一回事!)。但是如果你没有得到答复,你实际上无法确定他们是否打开了电子邮件。