javamail收取Hotmail的退信
Hotmail:我的首选电子邮件客户端
尽管当前Hotmail的存储空间可能相对较小,且收发邮件的速度偶尔会让用户产生一些疑虑,但不可否认的是,它的功能丰富且运行稳定。特别是其页面设计,对于我们这些热衷于Web编程的人来说,是一个重要的灵感源泉。
与其他许多POP3服务器不同,Hotmail实现了一种称为邮件传送状态通知(multipart/report)的功能。我曾经开发的邮件客户端只支持接收multipart/related、multipart/alternative和multipart/mixed等多媒体类型的邮件,对于其他类型,由于不常见,因此被我忽略了。
为了满足客户的需求,我进行了改进。当邮件无法送达时,服务器会返回一个失败消息。对于如何检测这些所谓的“回弹”消息,虽然有一个Inter标准(即multipart/report MIME类型,参阅RFC1892),但许多服务器并未广泛实现这一标准。RFC1211深入讨论了这个问题,并提供了大量实例。
在电子邮件世界中,特定的或用户名是否存在,只能由最终服务器来判断。消息可能会经过几个中继服务器(它们无法检测错误),然后到达最终服务器。当最终服务器检测到错误时,它会向原始发送者发送一个消息,指出失败的原因。尽管有许多Inter标准讨论了这种传送状态通知,但许多服务器仍使用特殊技术来返回这些错误消息,这使得将“回弹”消息与产生问题的原始邮件关联起来变得非常困难。
针对这一问题,我修改了我的程序,增加了一些简单的处理代码。当收到邮件类型为“message/delivery-status”时,程序会将文件名设置为“details.txt”,并保存附件。如果是“message/rfc822”类型,则使用退件的标题作为文件名保存。
如果希望提供更友好的用户体验,还可以进行许多改进,比如根据退信在已发送文件夹中查找原件,或者触发一个通知事件等。虽然客户当前并未提出这些需求,但我们可以预见并做好准备。值得注意的是,Hotmail并不使用POP3协议收信,而是采用WebDAV协议。关于如何使用Java收发Hotmail邮件的更多信息,请参见《通过JavaMail访问Hotmail》。
编程语言
- javamail收取Hotmail的退信
- asp文件如何打开
- 前端正则表达式书写及常用的方法
- php中preg_replace_callback函数简单用法示例
- 程序员的新年祝福 Happy New Year
- js中数组结合字符串实现查找(屏蔽广告判断url等
- web服务器程序运行出现乱码问题的解决方法
- 微信内置浏览器私有接口WeixinJSBridge介绍
- ThinkPHP3.1.x修改成功与失败跳转页面的方法
- nodeJs实现基于连接池连接mysql的方法示例
- JS实现手写parseInt的方法示例
- 浅析常用分词算法的比较与设想
- JS正则表达式获取字符串中特定字符的方法
- asp正则替换链接实现伪静态效果
- 基于jquery实现鼠标左右拖动滑块滑动附源码下载
- 基于开发中使用UEditor编辑器的注意事项详解