仓酷云

标题: 来看使用javamail收取Hotmail的退信 [打印本页]

作者: 因胸联盟    时间: 2015-1-18 11:30
标题: 来看使用javamail收取Hotmail的退信
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。
Hotmail是我最经常使用的EmailClient。固然时下hotmail的容量是小了些,速率也经常慢得让人不由问候盖茨的母亲。但不成否定,它功效相称丰厚,也对照不乱。特别它的页面计划更是我等web编程职员的主要参照。
不象良多的POP3服务器,hotmail完成了邮件传送形态关照(multipart/report)。我之前写的邮件客户端只撑持收取multipart/related、multipart/alternative和multipart/mixed等多媒体范例的邮件,其他的由于不罕见,我都疏忽了。
客户不允许了,那另有甚么好说的,另有甚么比让客户中意更主要的事变呢,在没买单之前。
multipart/report邮件范例的先容拜见RFC1892,Sun的中文JavamailFaq里也有相干的申明,我摘录以下:
问.当动静不克不及被传送时,就会前往一个失利动静。我怎样检测这些“回弹”动静?
答:固然有一个Internet尺度用于呈报如许的毛病(multipart/reportMIME范例,参阅RFC1892),但还没有普遍完成它。RFC1211深切会商了这个成绩,包含了大批的例子。
在Internet电子邮件中,特定的邮箱或用户名是不是存在,只能由传送动静的终极服务器决意。动静大概经由过程几其中继服务器(它们不克不及检测毛病),然后再抵达终极服务器。一般,当终极服务器检测到这一毛病,它会前往一个动静给原始动静的发送人,指出失利的缘故原由。有很多Internet尺度会商了这类传送形态关照(DeliveryStatusNotifications),但大批服务器不撑持这些新尺度,相反利用出格手艺来前往这类毛病动静。这使得将“回弹”动静与发生成绩的原始动静互相联系关系起来十分坚苦(注重,这个成绩与JavaMail完整有关)。
有很多手艺和探索法用于处置这一成绩,但它们都不是完善的。一种手艺是VariableEnvelopeReturnPaths,http://cr.yp.to/proto/verp.txt形貌了这一手艺。
我修正了程序,也只是作了些复杂的处置,代码以下:
privatevoidparseMultipart(Multipartmultipart)throwsException{
 for(inti=0,n=multipart.getCount();i<n;i++){
  BodyPartpart=multipart.getBodyPart(i);
  Stringdisposition=part.getDisposition();
  if(part.isMimeType("multipart/*")){
   this.parseMultipart((Multipart)part.getContent());
  }elseif(part.isMimeType("text/html")){
  //处置文本内容
  }
  /*******处置附件,图片等等********/
  }elseif(part.isMimeType("message/delivery-status")){
   part.setFileName("details.txt");//模仿outlook,details.txt内容即传送形态关照的邮件头信息
   saveAttachedFile(part);
  }elseif(part.isMimeType("message/rfc822")){
   MimeBodyPartmbp=newMimeBodyPart(part.getInputStream());
   part.setFileName(mbp.getHeader("Subject",null)+".eml");//模仿outlook,用退件的题目做文件名
   saveAttachedFile(part);
  }
 }
}
假如要做得更友爱,还能够做良多改善,好比依据退信找出已发送文件夹中的原件,大概引发一个关照事务等等。客户其实不必要,我仍是不要自作多情了。
人人都晓得,hotmail不是用pop3协定收信,而是用webdav协定。用java收发hotmail的邮件,拜见《经由过程JavaMail会见Hotmail邮箱》。

Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
作者: 飘飘悠悠    时间: 2015-1-21 08:42
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 若天明    时间: 2015-1-21 08:42
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 愤怒的大鸟    时间: 2015-1-30 12:39
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 海妖    时间: 2015-1-30 12:39
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 山那边是海    时间: 2015-2-6 11:49
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 老尸    时间: 2015-2-16 02:34
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 再现理想    时间: 2015-2-16 23:17
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 只想知道    时间: 2015-3-1 09:16
是一种使用者不需花费很多时间学习的语言
作者: 灵魂腐蚀    时间: 2015-3-11 07:11
是一种突破用户端机器环境和CPU
作者: 冷月葬花魂    时间: 2015-3-17 23:08
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 精灵巫婆    时间: 2015-3-17 23:08
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 若相依    时间: 2015-3-25 05:21
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2