校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > JavaMail訪問Hotmail郵箱

JavaMail訪問Hotmail郵箱

熱門標簽:開封便宜外呼系統報價 商丘百應電話機器人有沒有效果 漯河辦理400電話 黃石智能營銷電銷機器人效果 騰訊地圖標注商戶改名注冊入駐 怎樣把地圖標注出來 淮南騰訊地圖標注 地圖標注人員兼職 電話機器人的特色和創新
相信許多人都有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郵箱,我們就需要架起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 跟我交流在使用中遇到的問題。
您可能感興趣的文章:
  • java中javamail發送帶附件的郵件實現方法
  • Java基于JavaMail實現向QQ郵箱發送郵件
  • java中javamail收發郵件實現方法
  • Java程序中使用JavaMail發送帶圖片和附件的郵件
  • struts2集成javamail發郵件示例詳解
  • JavaMail實現發送超文本(html)格式郵件的方法
  • 基于JavaMail的常用類詳細介紹
  • JavaWeb中使用JavaMail實現發送郵件功能實例詳解
  • javamail 發送郵件的實例代碼分享
  • 使用JavaMail發送郵件保證成功的方法

標簽:岳陽 紅河 亳州 拉薩 大興安嶺 馬鞍山 武威 鄭州

巨人網絡通訊聲明:本文標題《JavaMail訪問Hotmail郵箱》,本文關鍵詞  JavaMail,訪問,Hotmail,郵箱,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JavaMail訪問Hotmail郵箱》相關的同類信息!
  • 本頁收集關于JavaMail訪問Hotmail郵箱的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    激情图片小说一区| 成人激情免费电影网址| 国产精品五月天| 欧美剧在线免费观看网站| 国产成人免费在线观看| 亚洲成人av免费| 中文字幕亚洲在| 久久免费的精品国产v∧| 欧美久久久久久蜜桃| 大桥未久av一区二区三区中文| 青青草91视频| 亚洲成人第一页| 一区二区三区欧美在线观看| 亚洲国产精品二十页| 精品av综合导航| 欧美一区二区三区四区高清| 欧美体内she精高潮| 91网站最新地址| 成人激情视频网站| 国产不卡在线视频| 激情综合五月天| 青青国产91久久久久久| 亚洲综合在线第一页| 亚洲色图欧美偷拍| 国产精品麻豆一区二区| 国产欧美精品日韩区二区麻豆天美| 欧美成人精品福利| 欧美一区日韩一区| 制服视频三区第一页精品| 欧美图片一区二区三区| 在线免费观看一区| 欧美亚洲综合一区| 在线日韩国产精品| 欧洲国内综合视频| 欧美在线免费播放| 欧美日韩极品在线观看一区| 欧美系列日韩一区| 欧美三级日韩在线| 欧美精三区欧美精三区| 欧美高清视频不卡网| 欧美高清一级片在线| 欧美一区二区三区在线观看| 日韩一区二区影院| 欧美精品一区二区三区蜜桃视频 | 亚洲欧洲综合另类在线| 国产精品水嫩水嫩| 国产精品传媒入口麻豆| 自拍偷拍国产亚洲| 一区二区三区在线观看欧美| 亚洲成av人片在线观看| 日韩在线一二三区| 久久99精品国产麻豆不卡| 精品亚洲免费视频| 懂色av一区二区三区免费观看| 成人精品国产免费网站| 99久久99久久综合| 欧美午夜片在线观看| 欧美日本乱大交xxxxx| 日韩欧美国产一区二区在线播放| 欧美一级理论性理论a| 久久亚洲一区二区三区明星换脸| 欧美国产日产图区| 亚洲摸摸操操av| 日日摸夜夜添夜夜添国产精品| 看片网站欧美日韩| 国产成人av电影在线| 色综合久久99| 欧美一区二区视频观看视频| 久久亚洲私人国产精品va媚药| 国产精品欧美综合在线| 一级精品视频在线观看宜春院| 天天av天天翘天天综合网| 国产一区二区三区久久久| 97久久人人超碰| 欧美一区日本一区韩国一区| 国产欧美一区二区精品忘忧草| 亚洲女子a中天字幕| 日韩不卡一二三区| 日韩午夜三级在线| 丁香婷婷综合五月| 欧美婷婷六月丁香综合色| 欧美成人精品福利| 亚洲精品视频免费看| 精品综合免费视频观看| aaa亚洲精品| 欧美一区二区精品在线| 成人欧美一区二区三区1314| 五月天网站亚洲| 国产成人高清在线| 91精品黄色片免费大全| 国产精品美女久久久久高潮| 亚洲成a人v欧美综合天堂| 国产成人aaa| 欧美一区二区黄色| 亚洲视频免费看| 麻豆91精品91久久久的内涵| 99久久99精品久久久久久 | 国产欧美一区二区精品性色超碰| 亚洲一区免费视频| 成人性生交大片免费看在线播放| 在线播放亚洲一区| 亚洲色图制服丝袜| 国产成人av电影在线| 欧美一二三区精品| 亚洲一区二区精品视频| 成人黄色在线看| 久久综合久色欧美综合狠狠| 日韩一区欧美二区| 欧美性感一类影片在线播放| 国产精品久久久久久久久免费桃花 | 亚洲一区二区三区四区五区黄| 粉嫩av一区二区三区粉嫩| 日韩一区二区三区高清免费看看| 亚洲三级电影全部在线观看高清| 国产成人亚洲综合a∨婷婷图片| 在线不卡a资源高清| 亚洲小少妇裸体bbw| 一本久久a久久精品亚洲| 国产精品麻豆视频| 国产一区 二区| 精品第一国产综合精品aⅴ| 视频一区欧美日韩| 欧美高清精品3d| 丝袜美腿一区二区三区| 欧美亚洲丝袜传媒另类| 亚洲综合激情网| 欧美亚洲免费在线一区| 洋洋av久久久久久久一区| 色综合激情久久| 亚洲综合男人的天堂| 欧美亚洲一区二区三区四区| 亚洲一区二区三区小说| 欧美亚洲国产怡红院影院| 亚洲一级二级在线| 欧美日韩国产电影| 亚洲成人黄色影院| 欧美一区二区不卡视频| 日韩精品久久理论片| 日韩欧美亚洲国产另类| 久热成人在线视频| 日韩精品一区二区三区swag| 九色综合国产一区二区三区| 精品国产亚洲在线| 国产成人综合亚洲网站| 国产精品久久久久天堂| 91蜜桃婷婷狠狠久久综合9色| 亚洲欧美精品午睡沙发| 91国产免费观看| 水蜜桃久久夜色精品一区的特点 | 国产一区二区三区最好精华液| 日韩欧美123| 国内外成人在线| 国产精品久久综合| 日本国产一区二区| 首页国产欧美久久| 精品国产青草久久久久福利| 国产91清纯白嫩初高中在线观看 | 亚洲成人激情综合网| 91精品麻豆日日躁夜夜躁| 免费成人结看片| 国产日韩欧美电影| 99精品国产一区二区三区不卡| 一区二区在线观看免费| 欧美精品vⅰdeose4hd| 美女mm1313爽爽久久久蜜臀| 欧美高清在线一区二区| 欧美在线小视频| 久久电影网站中文字幕| 国产精品美女www爽爽爽| 日本久久精品电影| 美腿丝袜在线亚洲一区| 亚洲国产精品传媒在线观看| 欧美在线免费播放| 国产一区二区久久| 一区二区三区久久久| 日韩欧美一区电影| av电影在线观看一区| 日韩综合小视频| 欧美极品另类videosde| 欧美日韩精品高清| 岛国av在线一区| 日本不卡中文字幕| 亚洲免费av高清| 精品久久久久久久久久久久包黑料| 成人午夜视频福利| 亚洲综合精品自拍| 欧美丰满少妇xxxbbb| 国产精品888| 亚洲高清不卡在线观看| 日本一区二区综合亚洲| 色狠狠一区二区三区香蕉| 日本在线不卡一区| 亚洲欧美另类在线| 欧美一级日韩一级| k8久久久一区二区三区 | 亚洲永久精品国产| 国产拍揄自揄精品视频麻豆| 欧美日韩国产片| 成人免费观看av| 精品一区精品二区高清|