javamail收取Hotmail的退信

网络编程 2025-03-24 02:29www.168986.cn编程入门

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》。

上一篇:asp文件如何打开 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by