php邮件发送,怎么获知接收情况(如成功送达、被拒收等)

ERPshanghai 2009-08-29 05:32:35
自己用phpmailer写了个邮件发送程序,通过其它邮箱做smtp转发,好像是无法获知邮件是否成功送达或者被拒收了之类的反馈的。程序如果显示发送成功,只是成功送达转发的那个smtp邮箱了而已,并不表示成功送达了最终的收件人。
所以打算用自己的邮件发送服务器,可提供支持反向解析的IP,反正企业邮局所需要的环境我都可以搭建。现在的问题就是想针对每一封发送出去的邮件,程序直接获取邮件接收的反馈,并判断出来是什么信息,好做统计数据。不是写在邮件内容里的那种阅读回执,而是邮件接收服务器回执。不知道直接使用mail()函数或者phpmailer类是否能实现,或者其它API?或者需要接收返回邮件并判断,那么怎么判断?
问题很专业,请看清楚题目。
如果这样的设计是不可能的,请权威人士解答一下,因为我见到这样的程序了,虽然有点怀疑它的统计数据,但实际测试却发现它的统计数据截至目前还是对的。
...全文
1776 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
AntiRSI 2009-09-17
  • 打赏
  • 举报
回复
QQ邮箱就能做到判断mail是否已投递到对方邮箱服务器。
ERPshanghai 2009-09-17
  • 打赏
  • 举报
回复
唉,只能慢慢研究了,先结了这贴。
如有高手清楚怎么弄,烦请指教一下,或者提供酬劳帮我写个分析程序
dahaidao 2009-09-06
  • 打赏
  • 举报
回复
看下协议吧。有点记不太清楚了。
ERPshanghai 2009-09-05
  • 打赏
  • 举报
回复
再UP吧
ERPshanghai 2009-09-04
  • 打赏
  • 举报
回复
up
骄傲青蛙 2009-09-03
  • 打赏
  • 举报
回复
标记一下, 吃完饭看
ERPshanghai 2009-09-03
  • 打赏
  • 举报
回复
还有sendmail或者qmail怎么分析
ERPshanghai 2009-09-03
  • 打赏
  • 举报
回复
如果用的postfix怎么分析?我不知道日志格式
程序猿之殇 2009-09-03
  • 打赏
  • 举报
回复
送达或者拒收,
都可以通过分析mail服务器日志来完成.
ERPshanghai 2009-09-03
  • 打赏
  • 举报
回复
关于是/否判断 :送达、拒收
本帖讨论重点,望知道的人提供点资料
ERPshanghai 2009-09-03
  • 打赏
  • 举报
回复
还有一种获取阅读回执的方法,但是接收用户在查看这种邮件时会弹出一个对话框,要求用户选择是否发送阅读回执。这种方式据调查是最不受欢迎的方式,而且也同样的很难确保用户会做出正确响应,甚至直接被屏蔽
ERPshanghai 2009-09-03
  • 打赏
  • 举报
回复
阅读回执我是打算用图片的方式(如17楼所说)获取,因为阅读回执是用户做出响应动作了,相对其实很容易获取了。所以这里就不讨论了。(其实这种方式也被现在相当多邮箱服务商都屏蔽掉了)
关于怎么分析服务器LOG日志或者直接根据返回的头信息进行分析,这是重点,我需要获取的信息里不需要删除判断之类的,之所以提到这个,是指不需要打开就知道送达了的意思,我的意思就是,要靠打开才能获取的回执不是我这里要讨论的。
再说一遍,我要的是送达通知
送达通知
送达通知
送达通知
送达通知
送达通知

不是阅读通知!
foolbirdflyfirst 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yjqstar 的回复:]
看来大部分人都没明白我意思
我发信给邮件接收服务器,服务器要给个响应吧,告诉我收到了吧?否则我是不是要一直发下去?
于是我就知道送达了吧。
或者服务器拒收,信件要么退回要么给个通知吧,我是不是也知道了?
干嘛要删除也给我个通知?我是这个意思吗?这明显不可能吧。服务器收到我发出的信件,但是一直没收到阅读回执,那么两种情况,1、信件中的回执链接被屏蔽 2、没看就删除了
[/Quote]
你与邮件服务器连接,是socket连接,http协议,肯定会有返回头以及信息,你可以分析返回头以及信息,就很有可能知道以发送成功还是被拒收。
至于回执,要看对方是否发送回执给你,这个不是一定可以收到的吧?你如何确定邮件的具体状态?已读,删除?
griefforyou 2009-09-03
  • 打赏
  • 举报
回复
判断用户有没有阅读有一种方法。

邮件内容用HTML方式发送,HTML中加入一个宽度为0的外部图片链接比如:<img src='http://你的网站/记录邮件是否阅读的程序地址?一些参数' width=0 height=0 />。

这样一来,只要用户打开过这封邮件,你就能知道了。

griefforyou 2009-09-03
  • 打赏
  • 举报
回复
通过你自己的邮箱SMTP服务器中转的邮件应该是无法判断最终用户的状态吧。

如果你跳过自己的SMTP服务器,直接向对方的SMTP服务器发送邮件就可以随时掌握邮件的发送情况了。
程序猿之殇 2009-09-03
  • 打赏
  • 举报
回复
对于有没有发送到,可以分析服务器log日志.
删除,一般基本上没有通知.
gqs2105 2009-09-03
  • 打赏
  • 举报
回复
顶贴~!

随便做下广告
PHP MYSQL CMS交流群88286077
  • 打赏
  • 举报
回复
帮顶
  • 打赏
  • 举报
回复
http://www.phpchina.com/html/03/32003-12568.html

看看这篇文章的分析吧

sunfan1010 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 yjqstar 的回复:]

如果这样的设计是不可能的,请权威人士解答一下,因为我见到这样的程序了,虽然有点怀疑它的统计数据,但实际测试却发现它的统计数据截至目前还是对的。

[/Quote]

你确认对各种不同的邮件服务商都发过并确都是正确的?怀疑中
加载更多回复(13)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧