java 发送邮件 退信,操作javamail收取Hotmail的退信[Java编程]

赞助商链接

本文“操作javamail收取Hotmail的退信[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Hotmail是我最常用的Email Client.固然时下hotmail的容量是小了些,速度也常常慢得让人不由问候盖茨的母亲.但不可否定,它功效相当丰富,也对比安定.尤别的的页面计划更是我等web编程人员的重要参照.

不象很多的POP3服务器,hotmail 实现了邮件传送状况告诉(multipart/report).我从前写的邮件客户端只支持收取 multipart/related、multipart/alternative和multipart/mixed 等多媒体范例的邮件,其他的因为不常见,我都忽视了.

客户不承诺了,那还有什么好说的,还有什么比让客户称心更重要的事情呢,在没买单之前.

multipart/report 邮件范例的介绍拜见 RFC1892,Sun的中文 Javamail Faq 里也有相关的阐明,我摘录以下:

问. 当消息不能被传送时,就会返回一个失利消息.我若何检测这些“回弹”消息?

答:固然有一个 Internet 尺度用于报告这样的错误(multipart/report MIME 范例,参阅 RFC1892),但还没有遍及实现它.RFC1211 深化谈论了这个问题,包含了大量的例子.

在 Internet 电子邮件中,特定的邮箱或用户名能否存在,只能由传送消息的终究服务器决意.消息大概通过几此中继服务器(它们不能检测错误),然后再到达终究服务器.普通,当终究服务器检测到这一错误,它会返回一个消息给原始消息的发送人,指出失利的缘由.有很多 Internet 尺度谈论了这种传送状况告诉 (Delivery Status Notifications),但大量服务器不支持这些新尺度,相反利用分外技术来返回这种错误消息.这使得将“回弹”消息与产生问题的原始消息彼此关联起来非常艰难(注意,这个问题与 JavaMail 完好无关).

有很多技术和摸索法用于处理这一问题,但它们都不是完善的.一种技术是 Variable Envelope Return Paths,http://cr.yp.to/proto/verp.txt 描写了这一技术.

我改正了程序,也只是作了些简单的处理,代码以下:

private void parseMultipart(Multipart multipart) throws Exception {

for (int i = 0, n = multipart.getCount(); i < n; i++) {

BodyPart part = multipart.getBodyPart(i);

String disposition = part.getDisposition();

if (part.isMimeType("multipart/*")) {

this.parseMultipart((Multipart) part.getContent());

} else if (part.isMimeType("text/html")) {

//处理文本内容

}

/******* 处理附件,图片等等 ********/

} else if (part.isMimeType("message/delivery-status")) {

part.setFileName("details.txt"); //模拟outlook,details.txt 内容即传送状况告诉的邮件头信息

saveAttachedFile(part);

} else if (part.isMimeType("message/rfc822")) {

MimeBodyPart mbp = new MimeBodyPart(part.getInputStream());

part.setFileName(mbp.getHeader("Subject", null) + ".eml"); //模拟outlook,用退件的标题做文件名

saveAttachedFile(part);

}

}

}

假如要做得更友好,还可以做很多改良,比方按照退信找出已发送文件夹中的原件,大概激起一个告诉事件等等.客户并不需求,我还是不要自作多情了.

大家都知道,hotmail 不是用pop3协议收信,而是用webdav协议.用java收发hotmail的邮件 ,拜见《通过JavaMail拜候Hotmail邮箱》.

以上是“操作javamail收取Hotmail的退信[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值