大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> JavaMail访问Hotmail邮箱

JavaMail访问Hotmail邮箱

时间: 2021-07-31 作者:daque

断定很多人都有msn谈天东西的帐号,比方abc@hotmail.com ,这个账号本来也是一个邮件地方,不妨举行平常的邮件收发功效,你不妨经过网址 http://www.hotmail.com 来考察和操纵这个邮箱举行邮件的收发。然而这个邮箱有一个控制即是它并不供给pop3大概smtp效劳,也即是说普遍的邮件存户端东西没辙运用这个邮箱,固然此刻有不少的邮件东西不妨扶助hotmail邮箱,然而即使咱们须要在咱们的java名目中减少对hotmail邮箱的扶助,那常常会不知从什么场合发端动手,由于sun公司供给的javamail 自己并不供给对除去pop3/imap以及smtp外其余和议的扶助。   但究竟上,javamail不过设置了一组平台无干、独力于通信和议的邮件步调框架,大概说是接口,它是动作java的可选包生存的。所以不妨如许说:javamail并不关怀所运用的和议,尽管是pop3、smtp、imap固然再有hotmail用的http和议。对于javamail的存户端而言也是如许的,下图即是一个最大略的javamail构造图,经过transport举行邮件的发送,经过store实行对邮件的收取,而各别和议的实行,javamail里的观念叫作provider,只须要按照javamail设置的接话柄现本人的provider即可。

javamail访问hotmail邮箱图1

  为了实行经过JavaMail访问Hotmail邮箱,咱们就须要搭设javamail接口与hotmail效劳所供给的考察接口之间的桥梁。在这之前咱们必需开始领会hotmail所运用的接口和议。   hotmail经过地方 http://services.msn.com/svcs/hotmail/httpmail.asp 供给鉴于http和议的效劳,它各别于咱们经过欣赏器考察 http://www.hotmail.com 的这个地方,反面这个地方是供给给用户一个鉴于欣赏器的考察界面再不对邮箱举行操纵,你固然不妨经过编写http存户端步调来领会页面并获得邮件的消息,然而如许做不只实行的搀杂水平特殊高,并且历次页面作风爆发变革后步调都要做相映的安排,所以不完备通用性,明显是不行行的。而地方 http://services.msn.com/svcs/hotmail/httpmail.asp 则各别,它供给了恒定的运用步调接口。当你运用欣赏器考察该地方的功夫,会弹出底下诉求登录的窗体:

  而当输出精确的用户名和口令后会再弹出一次或两次该提醒窗口,但提醒消息各别,操纵实行后展示页面没辙表露的缺点,缺点码是 405 (资源不承诺)。所以该效劳并不承诺经过欣赏器来考察。   究竟上hotmail运用的是webdav来供给鉴于http和议的运用编制程序接口,webdav(web 散布式创造和本子遏制)仍旧变成要害的 web 通信和议。webdav所要处置的题目是:   1.改写养护:http 1.1 没辙保证存户端不妨养护资源,而且不妨在其余存户端同声编纂它们的情景下举行变动。 运用 webdav,不妨经过多种办法来锁定资源,再不让其余存户端领会您对所计划的资源感爱好,大概提防其余存户端考察该资源。   2.资源处置:http 只能径直考察单个资源。 webdav 供给一种更灵验地构造数据的本领。 webdav 引入了可包括资源 的汇合(一致于文献体例文献夹)观念。 经过 webdav 举行的资源处置囊括如次功效:创造、挪动、复制和简略汇合,以及汇合中的资源或文献。   3.文书档案属性:各别典型的数据具备独一的属性,这无助于于刻画数据。 比方,在电子邮件中,那些属性大概是发件人的全名和接受邮件的功夫。 在协调文书档案中,那些属性大概是文书档案原始作家的全名和结果一个编纂者的全名。 由于人们运用的文书档案典型各不沟通,以是大概的属性典型列表也变得无穷大。 xml 是 webdav 所需的一种可扩充通信东西。   对于webdav的更多材料不妨参见正文结果的参考材料。   对立于自行领会hotmail的欣赏器页面而言,鉴于一定和议webdav的接口使hotmail邮件存户端步调的实行越发宁静和真实。在领会了javamail api的基础接口以及hotmail所供给接口的和议,正文的标题就变得特殊简直了,即是即使编写鉴于webdav的javamail provider(javamail供给者)并运用这个供给者来实行hotmail邮件收发功效,但这标题太大并且仍旧胜过了一篇作品所能报告的范畴,所以咱们接下来将引入一个盛开源码名目jdavmail,并精细引见怎样经过这个名目实行hotmail邮件的收发功效。   jdavmail 是一个盛开源码的javamail的供给者名目,不妨经过它来考察鉴于webdav和议的邮件效劳,犹如hotmail邮箱。你不妨到 http://sourceforge.net/projects/jdavmail 这个网址载入到最新本子的步调。jdavmail运用了jakarta上的commons httpclient 动作http存户端组件与效劳器举行通信,同声运用了jdom举行xml数据的领会,其余因为httpclient名目用到了commons logging举行日志的输入,所以commons-logging也是必需的,这三个组件都不妨在jdavmail的收缩包中的lib目次中找到,收缩包中同声还囊括已编写翻译的jar文献以及一切的源码。    为了让大师对jdavmail有个大约的看法,底下咱们给出两段代码用来hotmail邮件的收发:   1. 邮件收取   /*   * 文献名:hotmaildemo.java   * 创造功夫:2004-9-14   * 创造者:liudong   */   package com.clickcom.mail;   import java.util.date;   import java.util.properties;   import javax.mail.folder;   import javax.mail.message;   import javax.mail.session;   import javax.mail.store;   import javax.mail.transport;   import javax.mail.internet.internetaddress;   import javax.mail.internet.mimemessage;   /**   * hotmail邮件的收发器   * @author liudong   */   public class hotmaildemo {   public static void main(string[] args) {   receive();   }   /**   * 邮件接受   */    protected static void receive() {   try {    properties prop = new properties();    session ses = session.getinstance(prop);    //运用jdavmail provider    store store = ses.getstore("davmail");    //无需指定效劳器地方    store.connect(null, "你的帐号","暗号");    if (store.isconnected()) {     folder inbox = store.getfolder("inbox");     if (inbox.exists()) {      inbox.open(folder.read_only);      int ncount = inbox.getmessagecount();      system.out.println("inbox contains " + ncount + " messages");      // 顺序表露收件箱中的每封邮件      for(int i=1;i<=ncount;i++){       mimemessage msg = (mimemessage) inbox.getmessage(i);       system.out.println("subject : " + msg.getsubject());       system.out.println("from : " + msg.getfrom()[0].tostring());       system.out.println("content type : " + msg.getcontenttype());       system.out.println(msg.getcontent());      }     }    }   } catch (exception ex) {    ex.printstacktrace();   }   }   }   从上头这段代码咱们创造除去 store store = ses.getstore("davmail"); 这个语句,同声不须要指定效劳器地方外,其余的都跟一个普遍的javamail运用步调没有两样,也没有引入任何跟jdavmail相关的类。没有指定效劳器地方这个比拟简单领会,由于hotmail供给httpmail效劳的地方是恒定的。究竟上仅有getstore这个语句跟惯例邮件存户端步调有点各别的是它运用davmail字符串动作参数,而咱们在运用javamail贯穿pop3效劳器的功夫指定参数值为pop3。如何回事呢?由于javamail是经过和议名来加载provider类的。翻开jdavmail.0.9.006.jar这个jar文献就会发此刻meta-inf目次下有一个文献javamail.providers,该文献实质如次:   protocol=davmail;   type=store; class=com.posisoft.jdavmail.jdavmailstore;   vendor=positive software;   protocol=davmail_xmit;   type=transport;   class=com.posisoft.jdavmail.jdavmailtransport;   vendor=positive software;   所以当咱们指定和议名为davmail时,javamail就会机动加载com.posisoft.jdavmail.jdavmailstore类举行处置,所以经过传入davmail字符串所获得的store范例本质上是类com.posisoft.jdavmail.jdavmailstore的一个范例,如许我想大师该当领会了前方这段步调的处事道理。   咱们再来看jdavmail发送邮件的代码片断:   /**   * 邮件发送   */   protected static void send() {   try {   properties prop = new properties();   //邮件发送者地方   prop.setproperty("mail.davmail.from","abc@hotmail.com");   session ses = session.getinstance(prop);   //赢得jdavmail的邮件发送范例   transport transport = ses.gettransport("davmail_xmit");   //贯穿到hotmail效劳器,请替代为本人的用户名和口令   transport.connect(null, "用户名","口令");   // 筹备要发送的邮件   mimemessage txmsg = new mimemessage(ses);   txmsg.setsubject("this is the subject");   //邮件发送者地方   internetaddress addrfrom = new internetaddress("abc@hotmail.com");   txmsg.setfrom(addrfrom);   //邮件接受者地方   internetaddress addrto = new internetaddress("cdef@hotmail.com", "cdef");   txmsg.addrecipient(message.recipienttype.to, addrto);   //邮件实质   txmsg.settext("hello world !");   txmsg.setsentdate(new date());   //发送邮件   transport.sendmessage(txmsg, txmsg.getallrecipients());   } catch (exception ex) {   ex.printstacktrace();   }   }   同样这段代码运用了davmail_xmit和议来获得jdavmail的邮件发送范例,经过前方提到的javamail.providers文献不难领会jdavmail运用类com.posisoft.jdavmail.jdavmailtransport举行邮件的发送处置。   在本质尝试中创造尽管是jdavmail仍旧其余的邮件东西,运用hotmail举行邮件的发送速率比拟慢,差不离有几秒钟后本领收到相映的消息,所以即使尝试中创造该题目请细心等候。   我想经过正文引见怎样运用jdavmail收发hotmail邮件,以及接洽jdavmail的源码,不只不妨越发深刻领会javamail的体制构造,对编写javamail provider也有越发简直的参照。其余蓄意为正困挠于怎样在java步调中考察hotmail邮件的伙伴们排忧解围。同声也特殊欢送经过我的网站 http://www.javayou.com 跟我交谈在运用中遇到的题目。

javamail访问hotmail邮箱图2

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.