Php 有没有办法确定电子邮件是否到达目的地?

Php 有没有办法确定电子邮件是否到达目的地?,php,error-handling,email,error-detection,Php,Error Handling,Email,Error Detection,我有一个PHP脚本,可以发送需要到达目的地的关键电子邮件。我知道如何检查电子邮件是否成功发送,唯一的问题是知道它是否真的发送给了收件人 有什么建议吗?如果没有办法知道,你会如何处理这种情况?没有办法确定。即使远程服务器接受邮件,也不能保证邮件不会被垃圾邮件过滤器或其他方式过滤。如果我没记错的话,只要您发送成功,您就可以确定邮件至少已被接收邮件服务器接受。传递状态通知是通常的方式: 除非您使用microsoft电子邮件,并且阅读器未禁用“读取收据”,否则无法判断是否已读取电子邮件 编辑:我还没有发

我有一个PHP脚本,可以发送需要到达目的地的关键电子邮件。我知道如何检查电子邮件是否成功发送,唯一的问题是知道它是否真的发送给了收件人


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

没有办法确定。即使远程服务器接受邮件,也不能保证邮件不会被垃圾邮件过滤器或其他方式过滤。

如果我没记错的话,只要您发送成功,您就可以确定邮件至少已被接收邮件服务器接受。

传递状态通知是通常的方式:

除非您使用microsoft电子邮件,并且阅读器未禁用“读取收据”,否则无法判断是否已读取电子邮件


编辑:我还没有发展到HTML电子邮件,所以我从来没有考虑过阅读通知。

a可能会给你类似于阅读回执的东西,如果这是你所要求的。

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

为了完全有效,图像必须构成电子邮件的关键部分,因此收件人必须让他们的电子邮件客户端抓取图像。您还可以使电子邮件的纯文本部分仅包含一个URL来检索完整消息,再次允许您跟踪接收情况

你对这些想法的理解程度取决于你为什么需要知道它已经被阅读过,以及你想让收件人在多大程度上因为无法剪切粘贴、无法在移动设备上轻松阅读、无法用屏幕阅读器收听等邮件而感到烦恼。

尝试以下方法:

用HTML编写电子邮件(PHP没有那么棘手)。 在那封邮件中,包括一张图片(可能只是一个漂亮的徽标或其他东西)。 这张照片将是一张特别的照片。。。它是src,比如说,
myserver.com/images/logo.gif?recipient@email.com
。此src需要为每个发送电子邮件的人动态生成。然后,如果收件人打开电子邮件,电子邮件客户端将要求您的服务器提供logo.gif?recipient@email.com

因此,如果您的服务器收到对该映像的请求,您将知道这一点recipient@email.com收到你的信息

你可以在URL的末尾为标签创建一个特殊的格式,这样它不仅能告诉你它是谁,还能告诉你他们在回复哪封邮件

请记住,这是垃圾邮件发送者用来判断电子邮件地址是否处于活动状态的方法。因此,某些软件可能会问用户他们是否认为你是垃圾邮件!此外,一些用户将没有图像支持(或将关闭此支持)


祝你好运

如果是内部邮件,请发送电子邮件,但不要将邮件内容放在电子邮件中。提供指向网站的链接,但在url中提供标识符,以便将页面视图与电子邮件绑定

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

您还可以在目标邮件系统上设置一个普通帐户并进行检查。如果你从那个账户收到电子邮件,很可能是系统没有设置为过滤掉它


你也可以要求接收系统的管理员给你回复收到的邮件(你知道,卷曲确认网页的脚本),但这需要很多合作。尽管在这一点上,通过web服务传递消息可能更容易

不幸的是,没有100%的方法来确定邮件是否已发送到用户的收件箱。即使服务器接受该消息,也可能被垃圾邮件过滤器拦截或异步反弹

很多人都提到了web bug跟踪风格的技术。这些方法对营销人员很有效:他们可以根据样本大小做出假设。它们需要HTML电子邮件,用户以HTML格式加载图像。在某些情况下,这会自动发生,但很多时候人们必须特别单击“下载图像”按钮

另一种方法是使用。他们服务的一部分是跟踪哪些邮件实际被发送和打开。当然,这需要花钱,而且并非所有的邮件提供商都得到支持。同样,它主要是一种营销工具

您还可以在链接中隐藏跟踪脚本。例如,您创建的URL如下所示:

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

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

SMTP协议是异步的,因此用户邮件客户端可以返回唯一有保证的反馈。如果在投递过程中出现问题,您将收到回退邮件到信封发件人(邮件标题返回路径)中定义的地址。这些回退的时间不可预测且未定义。
到目前为止,跟踪HTML电子邮件正文中的像素是向您报告用户已实际打开电子邮件的最佳方式。

所有跟踪链接和webbugs都假定用户实际打开电子邮件并启用远程图像,或单击链接。这都是有缺陷的

为了确保电子邮件已收到且未返回,我将执行以下操作:

  • 错误添加到
    标题(设置为。bounce@domain.com)
  • 添加
    返回路径
    标题(设置为例如。bounce@domain.com)
  • 拿起邮箱(bounce@domain.com)并解析电子邮件

  • 这可以让你检查邮件何时返回,根据邮件内容,你可能会知道哪封邮件被退回了。

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

    从法律上讲,你想出来的任何方法都不会在法庭上成立