2008-10-08 85 views
7

我有一个PHP脚本,发送需要到达目的地的重要电子邮件。我知道如何检查电子邮件是否成功发送,唯一的问题是知道它是否真的到达了收件人。有没有办法确定电子邮件是否到达目的地?

有什么建议吗?如果没有办法知道,你会如何处理这种情况?

+1

我这样想回答:添加该说,“如果您没有收到该电子邮件中的链接, 点击这里。” – 2008-10-08 22:48:39

+0

那太棒了。我可以在所有电子邮件中报告100%的成功率! :) – Marcel 2008-10-08 22:50:58

回答

9

如果您基于HTML的邮件,您可以在它含有独特的收件人信息的URL图像。您可以构建应用程序,以便这些URL在返回所需的图像数据之前触发某些代码以将该特定电子邮件标记为已读。

是完全有效,图像必须形成电子邮件的一个重要组成部分,以便收信人让自己的电子邮件客户端抢图像。您还可以使电子邮件的纯文本部分仅包含一个URL以检索完整的邮件,并允许您跟踪收据。

有多远,你把这些想法取决于为什么你需要知道它已经阅读并想可能惹恼他们所不能cut'n'paste电子邮件收件人什么程度,在移动设备上轻松阅读设备,听与屏幕阅读器,等等

4

有没有办法知道肯定。即使远程服务器接受该消息,也不保证它不会被垃圾邮件过滤器或其他方式过滤。

+0

在这一点上,我有兴趣知道远程服务器是否接受消息。所以我很高兴能够知道这是否发生。 – Marcel 2008-10-08 22:50:08

0

如果我记得只要权利,你成功发送,您可以放心,它已经至少被接收邮件服务器接受。

+0

当您说'发送成功'时,是否指的是返回码? – Marcel 2008-10-08 22:49:06

+0

http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Sample_communications 有一个发送电子邮件时会发生什么的例子。 – 2008-10-09 15:40:34

8

投递状态通知是通常的方式:http://www.sendmail.org/~ca/email/dsn.html

如果电子邮件被读取,除非您使用微软电子邮件的事情,读者没有禁用已读回执你不能告诉。

编辑:我还没有进展到HTML电子邮件了,所以我从来不认为一个阅读通知。

0

一个web bug可能给你就像一个读回执,如果这就是你在问什么。

1

试试这个:

写的HTML电子邮件(这不是那么棘手用PHP)。 在该电子邮件中,包含一张图片(可能只是一个漂亮的标志或其他东西)。 这张照片将是一张特别的照片......它的src将会是,比如myserver.com/images/[email protected]。这个src需要为每个发送邮件的人动态生成。然后,如果收件人打开电子邮件,电子邮件客户端会询问您的服务器[email protected]

因此,如果您的服务器收到该图像的请求,您将知道收件人@电子邮件.com收到您的消息。

您可以在URL的末尾创建的标签的特殊格式,因此它不仅会告诉它是哪个人,但他们回应的电子邮件。

请记住,这是垃圾邮件发送者做的说,如果电子邮件地址是有效的。因此,某些软件可能会询问用户是否认为自己是垃圾邮件!此外,有些用户不会支持图像(或将关闭此支持)。

祝你好运!

1

如果它的内部,发送电子邮件,但不要把该消息的内容的电子邮件。提供一个链接到一个网站,但在URL中的标识符,以便您可以将页面视图绑定到电子邮件。

你仍然可以做,如果它的外部,只要人在另一端是合作。

您还可以设置目标邮件系统上的香草帐户和检查。如果您在该帐户下收到电子邮件,则系统不会将其过滤掉。

你也可以要求接收系统的管理员给你一个反应良好的电子邮件(你知道,卷起你的确认网页的脚本),但这需要很多合作。尽管在这一点上,通过Web服务传递消息可能更容易。

3

遗憾的是,用于确定是否一个消息被传递给用户的收件箱没有100%方法。即使服务器接受该消息,它也可能被垃圾邮件过滤器阻挡或异步反弹回来。

很多人都提到了网络bug跟踪风格的技巧。这些对营销人员很有效:他们可以根据样本量进行假设。他们需要HTML电子邮件并且用户在HTML中加载图像。这在某些情况下会自动发生,但很多时候人们必须特别点击“下载图像”按钮。

的另一种方法是使用Goodmail。他们的部分服务是跟踪哪些消息实际获得并开放。当然,这会花钱,并不是所有的邮件提供商都支持。再次,它主要是一种营销工具。

您也可以在链接中隐藏跟踪脚本。例如,您可以创建一个看起来像网址:

http://trackingserver/track/$messageid/http://real.url/goes/here 

track脚本然后记录“喀嗒”的数据库和客户端重定向到http://real.url/goes/here。然后,您需要有一个令人信服的理由来每次点击该URL。

0

SMTP协议是异步的,所以用户邮件客户端可以返回唯一的保证反馈。如果交付出现问题,您将收到退回电子邮件到信封发件人中定义的地址(邮件标题Return-Path)这些退回的时间是不可预知的并且是未定义的。 目前为止,HTML电子邮件正文中的跟踪像素是报告用户实际打开电子邮件的最佳方式。

4

所有跟踪链接和webbugs假设人们实际打开电子邮件,并启用远程图像,或点击链接。哪一个都是有缺陷的。

要确保,如果接收到电子邮件,而不是回来后,我会做到以下几点:

  1. 添加Errors-To头(例如设定为[email protected]
  2. 添加Return-Path头(集例如[email protected]
  3. 拿起电子邮箱(bounce @ domain。com)并解析电子邮件

这可以让您根据邮件内容来检查电子邮件何时回来,您可能会找出哪个邮件被反弹/返回。

2

为什么你想知道有人读过邮件?

从法律上讲,你不可能拿出来的方式将在法庭上举行(比如说你想确保有人读过重要文件),因为你无法证明读者是收件人。

安全方面,您的邮件将被任何体面的垃圾邮件过滤器标记为垃圾邮件,并在任何人看到它之前被删除,因为在邮件中添加陌生链接或网络错误或图像正是垃圾邮件发送者所做的。如果你想卖东西,这是确保你不会的绝对方法。

更新:如果您需要确保人们已经阅读过某些内容,我建议您发送带有链接或指向他们应该阅读的文档的指针的邮件。不要将网络错误或个性化ID添加到链接。在文档中,告诉他们签署文档并返回签名副本,以证明他们已经阅读过该文档。

2

我想所有上述:在HTML中的图像,如果他们点击某些东西,跟踪链接。有第三方服务,如ReturnPath/Goodmail可以提供帮助。

最好的建议是确保您发送的邮件清单干净,IP地址具有良好的信誉,反向dns/spf记录,对广告系列有良好的取消订阅和反弹处理,对内容进行垃圾邮件检查以及让收件人添加你到他们的地址簿。

这会给你送一个更好的机会......

Sundeep.//

相关问题