如何检查是否收到了与PHP的邮件

时间:2009-12-14 11:02:14

标签: php email

我是php的新手。我想向某人发送电子邮件,之后我需要检查是否可以收到此邮件。我怎么做?希望你们明白我的问题;)。 提前致谢。马克

5 个答案:

答案 0 :(得分:6)

这是一个非常棘手的问题。唯一真正的方法是让PHP监控收件箱以检查您可能会收到的“无法投递的消息”通知。如果您真的想继续使用它,请查看用于PHP的POP3连接器。像这样:http://pecl.php.net/package/POP3

if (strpos(strtolower($subject), 'undeliverable') !== false){
    //do whatever you want with the address that couldn't be reached
}

从技术上讲,您不需要为POP3编译PHP扩展(特别是如果您是PHP的新手)...您可以通过打开套接字和讲邮件服务器来连接和读取消息: http://www.adamsinfo.com/a-rudimentary-php-pop3-example/

修改(多年后):

绝对查看http://mailgun.net/http://sendgrid.com/http://postmarkapp.com/

答案 1 :(得分:2)

如果您要发送HTML邮件,可以使用一个小技巧:

  • 为您要发送的邮件生成唯一ID(基于内容和收件人)
  • 包含从您的网络服务器

    加载的图片

    <img src="http://yourdomain.com/tracker.php?id=1234567" />

  • tracker.php
  • ,记录调用脚本的id并发送1px xpp图像

但是,如果邮件客户端在显示电子邮件时没有从互联网上下载图像,则无法正常工作,例如Thunderbird,(IIRC Outlook也是如此)

答案 2 :(得分:1)

对此没有明确的解决方案。 Web错误是一个o.k.想法,但他们正在消失,因为他们是非常有问题的安全明智,并在我知道的每个当前电子邮件客户端默认阻止。我建议使用以下标题行检查brianreavis建议的反弹收件箱以及请求送达回执的组合:

 Disposition-Notification-To:<xxx.xxx@example.com>

这样,您可以获得大多数底片(退回邮件)以及许多正面(收据)。发件人可以阻止发送收据,但是与解析错误通知一起,您应该拥有相当可靠的系统。

答案 3 :(得分:1)

在了解电子邮件已被阅读方面,有一个完美的解决方案。

不好的部分是电子邮件正文必须存储在网络服务器上。

诀窍: - 发送电子邮件只是一个小文本和一个URL,因此用户必须转到该URL以阅读电子邮件的内容。

换句话说......在电子邮件上,没有任何关于您要发送的内容,只有指向您在发送此类电子邮件之前创建的唯一页面的链接。

因此,要阅读内容,用户必须打开网络浏览器并转到此类网址。

诀窍是在eMail上放一些这样的文字......比如:bla,bla,bla ......按这里阅读更多内容。

概念:在线正文,访问此类正文的离线URL。

通过这种方式,您可以确定:如果已读取URL,则已阅读电子邮件。

不好的部分是您要发送的信息不在电子邮件中,必须位于唯一的网页上。

所以你必须控制没有机器人可以转到这样的URL ...例如使用URL: https://server/private/?eMail_Body=user

希望这个想法可以帮助别人。

答案 4 :(得分:0)

一个选项是Web Bug,但这些选项远非100%可靠,并且可能不是一种很好的行为方式。它不会区分未读的电子邮件和未投递的电子邮件,例如由于电子邮件地址错误,并且可以在不触发的情况下阅读包含Web Bug的电子邮件。

简而言之,您创建一个HTML电子邮件,其中包含一个元素,该元素在您的网站上具有该电子邮件所特有的URL。因此,如果客户端访问该URL,您可以确定有人已阅读您的电子邮件。 Wikipedia gives this example

  

例如,发送到地址somebody@example.org的电子邮件可以包含网址http://example.com/bug.gif?somebody@example.org的嵌入图片。每当用户阅读电子邮件时,都会请求此URL上的图像。服务器忽略问号后面的URL部分,以确定要发送的文件,但完整的URL存储在服务器的日志文件中。结果,文件bug.gif被发送并显示在电子邮件阅读器中;同时,服务器存储已发送到somebody@example.org的特定电子邮件已被读取的事实。

但是,有可能 - 很可能 - 有人可以在不连接到该URL的情况下阅读您的电子邮件。这可能是因为:

  • 许多电子邮件阅读器默认阻止此类链接,因为隐私问题恰恰是因为像这样的Web Bug。
  • 他们只是用文本阅读电子邮件,要么是因为他们的电子邮件客户端配置了这样做,要么是因为它无法显示HTML电子邮件,例如,很多手机客户端。

这是一个经常使用的选项 - 无论是垃圾邮件发送者还是更负责任的营销人员 - 但我可能不会推荐它,除非你完全理解它的局限性和影响,如果你使用它,人们可能会想到你。 / p>