当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

操作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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 操作Java线程池技术实现TCP端口扫描
  • 操作Java Beans在操纵程序中成立组件
  • 操作Java Swing筹划通用对话框
  • 操作Java Swing筹划尺度对话框
  • <b>操作JAVA语言实现支持视频点播的WEB服务器</b>
  • 操作Java三步实现Cool Button
  • 操作javamail收取Hotmail的退信
  • 操作Java Applet编程实现动画特技
  • 操作Java实现Web服务器
  • 操作Java实现串口全双工通讯
  • 操作java Api打印JTable
  • 操作Java技术开辟Web网络课件浅议
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .