使用php脚本跟踪php电子邮件?

Jag*_*san 13 php email tracking newsletter

我正在使用php mail()函数发送电子邮件简报.

我必须跟踪电子报的电子邮件状态.

状态为
1. Num.Of Sent.
2. Num.Of Delivered.
3.交付日期.
4. Total Num.Of Read.
5.独特的Num.Of Read.
6.阅读日期.
7. Num.Of弹跳.
8. Total Num.Of用户点击了电子邮件中的链接.
9.独特的Num.Of用户点击了电子邮件中的链接.

从上面的状态我可以跟踪以下内容:
1.已发送.//这是从编码发送时跟踪的.
8. Total Num.Of点击了电子邮件中的链接.//通过在url中添加其他参数来跟踪.
9. Unique Num.Of点击电子邮件中的链接.//通过在url中添加其他参数来跟踪.

如何跟踪从mail()功能发送的电子邮件的其他状态?
我必须发送和跟踪来自同一服务器的电子邮件.

dun*_*nos 16

您无法直接从mail()函数跟踪其他状态.技术上发送仅告诉您邮件已成功传递到服务器的出站邮件队列 - 您实际上无法判断它是否已离开您的服务器.

1 ,. 您需要检查邮件服务器日志,以确切了解电子邮件何时离开服务器.

2,3.已交付和交付日期的数量 - 再次,您需要检查邮件服务器日志,以查看邮件何时(成功)移交给第三方邮件服务器.但是,这取决于您对这些统计数据的可靠性的定义(进入最终用户邮箱?进入他们的电子邮件客户端?).

4,5,6.读取的总数,读取的唯一数字,读取日期.您无法准确跟踪此信息.但是,如果您发送了HTML电子邮件,则可以将图像嵌入到电子邮件中,从而使图像源成为您的网络服务器.如果每个图像URL都有您发送电子邮件的人的唯一标识符,那么您可以从服务器日志中跟踪这个(如果网址是返回图像的php脚本,则通过php跟踪).但是,这依赖于最终用户允许从外部Web服务器加载图像(例如,Outlook和gmail默认情况下关闭此功能).

7 ,. 如果您将发件人地址作为服务器上的脚本发送,则可以解析退回邮件并确定退回的数量.或者,您可以将发件人地址作为您进入的邮箱并手动检查.

8,9.电子邮件中的每个链接都需要是您网络服务器上网址的链接.该URL可以是一个脚本,可以跟踪谁(通过使用查询变量)和他们想要查看的内容(另一个查询变量),然后将它们(php中的标题函数)重定向到您希望它们结束的位置.

  • 另一种方法可能是解析邮件服务器日志(再次使用php)来实时跟踪它正在做什么.您的邮件服务器甚至可能有一个API,您可以与之通信以确定其队列中邮件的状态.无论哪种方式,您都需要阅读有关与邮件服务器集成的信息. (3认同)

Ste*_*ler 9

要获得所有这些统计信息,您必须使用不同的系统:

检查发送的号码

邮件功能的返回码不可靠,它只告诉您系统将开始尝试发送邮件.您必须使用通过SMTP本身进行通信的专用PHP类或解析系统邮件日志.但请记住这个数字几乎毫无意义,这导致了下一点......

检查交付的号码

即使您开始解析邮件日志或使用专门的PHP类自己通过SMTP发送,您也只能检查传递电子邮件的链中的第一台服务器.例如,在大公司中,邮件可能会传递到中央邮件服务器,您可以检查.然后将其发送到公司的另一个内部邮件服务器,该服务器拒绝邮件.你永远不会知道.甚至没有谈到垃圾邮件过滤器.所以,没有办法判断邮件是否已发送 - 直到下一点......

检查读数

更正式地说,你必须说"检查打开的电子邮件数量".为此,您将一个带有唯一URL的图像添加到HTML邮件中,例如http://mywebsite.com/images/IDOFRECIPIENT/IDOFMAILING/logo.jpg - 当请求URL时,您知道相应的收件人打开了邮件.缺点:如果收件人阻止外部内容的加载,你无能为力,你永远不会知道他的阅读.

链接的点击次数

这很简单:用你自己域名上的链接替换邮件中的所有链接.访问这些链接时,会引发一个计数器,并将访问者转发到真实站点.请注意:如果HTML电子邮件中的链接文本包含域名,但您链接到另一个域,则大多数电子邮件客户端都会认为它是垃圾邮件.所以,例如,

www.citibank.com
Run Code Online (Sandbox Code Playgroud) 不好.

反弹

这是一个艰难的.在您的电子邮件中指定"发件人"标题.这是电子邮件退回的地址.您可以使用除"发件人"标题之外的其他地址,这意味着当收件人点击"回复"按钮时,他可以发送电子邮件至info@yourdomain.com,但如果它反弹,则电子邮件会发出反弹-123- 456@newsletter.yourdomain.com.

诀窍是创建弹跳地址作为整个域的全能 - 所以发送到"... @ newsletter.yourdomain.com"的每封电子邮件都应该转到同一个收件箱.在电子邮件地址中,您可以保存收件人和邮件的ID:bounces- [recipientid] - [mailingid] @ newsletter.yourdomain.com.收件人地址是弹跳时唯一可靠的数据,其他所有内容都可能被收件人的邮件服务器删除.

然后只需编写一个PHP脚本,通过POP3获取邮件并检查发件人.

希望我能帮助你!