走自己的路

          路漫漫其修遠兮,吾將上下而求索

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            50 隨筆 :: 4 文章 :: 118 評論 :: 0 Trackbacks
           

          JavaMail的基礎上構建自己的Email Channel

          基礎知識

          Email入門

          不說太多,至于什么是EmailEmail給我們帶來什么好處,也就不嘮叨了。但是先得看下Email的數據結構,因為我們需要根據領域邏輯,進行面向對象的設計。



          現在通過webmailoutlook發的郵件一般都是MIME郵件,如上圖,但不同的client也可能稍微有所不同。

          郵件是由郵件頭和郵件體組成的,每個體部分由頭域、空行、體組成。但幾個值得注意的header

          Content-Type

          每個郵件體都有個content type。說明該郵件體的類型,編碼,boundary等。包括:主類型,如Multipart,Text,Image;子類型:如plain,htmlalternative;參數:如charset,boundary等。

          Content-Disposition

          我們可以通過參數來辨別某個郵件體是否是附件,附件的類型,附件的名字等。

          Content-Id

          Content id是郵件體的唯一標識,可以被其他郵件體所引用。我們發的HTML郵件里常??梢砸酶郊械膱D片,就是通過CID引用的。

          Content-Transfer-Encoding

          轉換郵件編碼格式用于傳輸。有些傳輸協議對數據格式有所限制。

          IMAP4 POP3

          IMAP4優于 POP3

          ·         IMAP可預取email的元數據信息:header,根據header做過濾。

          ·         可以實現直接連接到服務器上進行郵件的篩選,我把它稱為select操作。

          JavaMail

          ·         Transport發郵件:SMTPTransport

          ·         Store收郵件:IMAPStore, POP3Store

          JavaMailMIME郵件設計的數據結構:



           

          參考文章:

          http://www.javaworld.com/javaworld/jw-10-2001/jw-1026-javamail.html?page=2

          http://en.wikipedia.org/wiki/MIME

          http://www.freesoft.org/CIE/RFC/1521/

          <<面向對象的郵件解析器的設計與實現>>




          posted on 2010-01-16 12:33 叱咤紅人 閱讀(1878) 評論(0)  編輯  收藏 所屬分類: JDBC JNDI JMS RMI EJB and Other J2EE Tech
          主站蜘蛛池模板: 乐陵市| 永川市| 永善县| 舒兰市| 安仁县| 灵璧县| 敦煌市| 鹤峰县| 青阳县| 汨罗市| 平果县| 天水市| 陇川县| 色达县| 靖安县| 武乡县| 保亭| 通许县| 达拉特旗| 盐池县| 阳谷县| 绿春县| 上虞市| 通海县| 磴口县| 孟州市| 嵩明县| 安国市| 阜宁县| 诸城市| 江门市| 从江县| 三原县| 汽车| 平谷区| 巍山| 奇台县| 名山县| 南昌县| 闸北区| 宁晋县|