• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Javen-Studio 咖啡小屋

            http://javenstudio.org - C++ Java 分布式 搜索引擎
            Naven's Research Laboratory - Thinking of Life, Imagination of Future

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              24 隨筆 :: 57 文章 :: 170 評論 :: 4 Trackbacks

            1          概述

            郵件解析庫API完全使用面向對象技術設計,使用C++語言開發的用于郵件解析和組裝的庫。它提供了一些類用來解析和組裝Internet郵件,如MimeMessageMimeBodyPart,用于Internet郵件協議實現并且遵循RFC822RFC2045規范。這些API庫用于應用程序的開發。

            1.1        術語

            RFCRequest For Comments, 請求注解, Internet標準(草案)

            MIMEMultipurpose Internet Mail Extension protocol, 多用途的網際郵件擴充協議

            2          郵件解析庫的實現

            2.1        實現過程

            本郵件解析庫(FastMail)參考JavaMail的結構設計,有與之類似的接口和類。本解析庫用到基礎庫Fast庫參考ACE庫和STLJava Framework庫設計,包含一些字符串處理和容器的類。設計它們的目的是為了簡化庫的接口,并且盡量與Java庫的接口兼容,同時使用完全標準的C++特性,使庫更易維護更穩固。

            這兩個庫從2004-6月底開始開發設計至2004-10-10完成,歷時3個多月,由于不是全力投入,實際耗時約2個月,由于有JavaMailACESTL庫的借鑒,所以設計起來還比較順利。兩個庫的代碼量約有32000行代碼。類設計合理并且提供豐富的接口供二次開發和改造。

            下面是兩個庫的文件列表以及郵件解析庫的類的介紹(Fast庫另有文檔專門介紹):

            2.2        文件列表

            FAST基礎庫

                   comm.\

                   comm.\FastArray.h               數組類

                   comm.\FastAutoPtr.h            自動管理指針類

                   comm.\FastBase.h                FAST庫公共定義,包含一個完整的內存分配器類

                   comm.\FastHashMap.h         HashMap容器類

                   comm.\FastMap.h                Map容器類

                   comm.\FastString.h                     FastString字符串處理類

                   comm.\FastVector.h                     Vector容器類

             

            郵件解析引擎FastMail

                   mime\

                   mime\CharsetUtils.cpp          字符串編碼和解碼工具

                   mime\CharsetUtils.h

                   mime\MimeActivation.cpp     郵件解析初始化工具

                   mime\MimeActivation.h

                   mime\MimeBase.h                郵件解析公共定義

                   mime\MimeContainer.cpp      郵件解析Multipart容器

                   mime\MimeContainer.h

                   mime\MimeEntity.cpp           郵件解析MIME實體類

                   mime\MimeEntity.h

                   mime\MimeMessage.cpp       郵件解析MIME郵件類

                   mime\MimeMessage.h

                   mime\MimeObject.cpp          郵件解析MIME對象類

                   mime\MimeObject.h

                   mime\MimeParser.cpp          郵件解析工具類

                   mime\MimeParser.h

                   mime\MimeUtility.cpp           郵件解析工具類

                   mime\MimeUtility.h

             

            3          郵件解析庫的類

            3.1        類的實現

            郵件解析庫包含一系列的類,主要有MimeMessage(郵件實現類)、MimeBodyPart(郵件正文段體類)、MimeMultipart(郵件多部段體類)、InternetHeaders(郵件頭類)、InternetAddress(郵件地址類)和ContentType(段體類型類)等。解析和組裝郵件主要使用這些類進行組裝和分解。

            下面是所有的類的說明:

            類名

            名稱

            說明

            基類

            ContentDisposition

            MIME郵件頭

            實現MIME郵件頭的ContentDisposition

             

            ContentID

            MIME郵件頭

            實現MIME郵件頭的ContentID

             

            ContentType

            MIME郵件頭

            實現MIME郵件頭的ContentType

             

            MimeType

            MIME類型類

            實現MIME的類型,記錄在ContentType里,如text/plain

             

            ConverterFactory

            編碼轉換工廠類

            用于創建編碼轉換對象

             

            ICodeConverter

            編碼轉換接口類

             

             

            Base64Converter

            BASE64編碼類

            BASE64的編碼和解碼

            ICodeConverter

            QPConverter

            QP編碼類

            Quote-Printable的編碼和解碼

            ICodeConverter

            hdr

            MIME郵件頭類

            實現MIME郵件頭HEADER

             

            HeaderTokenizer

            郵件頭分解類

            實現分解MIME郵件頭的各元素,如Content-Typemimetype和各個參數。

             

            IMimePart

            MIME郵件段體接口類

            郵件段體類的基類

             

            MimeBodyPart

            MIME郵件段體類

            實現MIME郵件各個段體的類

            IMimePart

            MimeMessage

            MIME郵件類

            MIME郵件主類

            IMimePart

            IMultipart

            多部分接口類

            多部分類的基類

             

            MimeMultipart

            多部分實現類

            保存段體類對象的多部分容器類

            IMultipart

            InternetAddress

            MIME郵件地址類

            實現MIME郵件地址的類

             

            InternetHeaders

            MIME郵件頭部分類

            實現保存MIME各郵件頭的容器類

             

            MailDateFormat

            郵件時間轉換類

            實現MIME郵件的格式的時間轉換

             

            MailDateParser

            時間分解處理類

            實現MIME郵件格式的時間的分解

             

            MimeInitialization

            郵件解析全局初始化類

            實現初始化MIME郵件用到的各個全局變量

             

            MimetypesFileTypeMap

            郵件Mime類型映射類

            實現郵件MimeTypeFileType類型的映射表,用于查詢

             

            MimeUtility

            MIME郵件分析工具類

            實現郵件解析用到的各個解析工具函數

             

            ParameterList

            參數列表類

            實現ContentTypeContentDisposition用到的參數列表

             

            SystemProperty

            系統環境類

            實現讀取系統環境參數的方法

             

            UniqueValue

            郵件唯一值生成類

            實現生成MIME郵件用到的唯一值的類,如boundary

             

            3.2        類圖

            o_mime_class.gif

            3.3        MimeMessage

            現在介紹一下最主要的也是提供主要的調用接口API的類MimeMessage

            MimeMessage提供了一系列的方法供調用者使用,如定義了獲取地址信息和獲取郵件正文內容的結構(可以為具體的數據也可以為一個MimeMultipart對象),用來實現RFC822MIME規范。

            一個MimeMessage對象里保存了一個郵件內容數據(Content),以及一些記錄特定的郵件地址信息(如發件人(Sender)和收件人(recipients))的屬性(InternetHeaders)。還有關于這封郵件的結構信息(structural information),以及它的郵件主體(body)的段體類型(Content-Type)。

            下面用圖來描述一個MimeMessage對象內部可能的結構:

            3.4        MimeMessage類結構圖

             o_mimemessage.gif

             
            。。。未完待續

            4          參考文獻

            [1]JavaMail 1.2

            [2]JavaMailTM API Design Specification Version 1.2

            [3]C++網絡編程 1:運用ACE和模式消除復雜性》

            [4] http://www.faqs.org/rfcs/

            posted on 2005-10-03 11:57 Javen-Studio 閱讀(3325) 評論(4)  編輯 收藏 引用

            評論

            # re: 郵件解析框架FastMail庫介紹 2005-10-27 13:01 Avlee
            不知將采用何種方式發布呢  回復  更多評論
              

            # re: 郵件解析框架FastMail庫介紹 2005-10-29 00:27 Javen-Studio
            現在還不行,我想重新設計一下整個C++庫,郵件解析庫也想實現對輸入流的解析功能,我想以后希望能加入open source
              回復  更多評論
              

            # re: 郵件解析框架FastMail庫介紹 2007-07-12 20:56 woaiyajiaji
            專業,
            俺自己寫了一個,
            總共代碼才盡其用500多行,
            主要用了隊列  回復  更多評論
              

            # re: 郵件解析框架FastMail庫介紹 2007-07-16 21:30 Javen-Studio
            哦,這是我仿照javaMail的體系設計的,原本就是想實現一個完備的郵件解析庫,因為很多地方都可以用到,比如如何將附件,圖片和html等封裝成一個text格式處理,如mht文件等。  回復  更多評論
              

            亚洲精品乱码久久久久久蜜桃图片| 国产精品久久久久久久久久免费| 99热成人精品免费久久| 国产成人精品久久一区二区三区| 伊人久久久AV老熟妇色| 国产99久久久国产精品小说| 亚洲精品WWW久久久久久| 色婷婷久久综合中文久久一本| 99久久婷婷国产综合精品草原| 99热热久久这里只有精品68| 国产精品免费久久久久电影网| 91久久精品无码一区二区毛片| 夜夜亚洲天天久久| 久久精品国产精品亚洲下载| 欧洲国产伦久久久久久久| 国产69精品久久久久久人妻精品| 久久综合亚洲色HEZYO社区| 伊人色综合久久天天人手人婷| 久久国产高潮流白浆免费观看| 99re这里只有精品热久久| 激情久久久久久久久久| 人妻无码精品久久亚瑟影视| 国产美女亚洲精品久久久综合| 久久精品中文闷骚内射| 国产精品日韩欧美久久综合| 亚洲国产成人精品久久久国产成人一区二区三区综 | 精品国产91久久久久久久a | 97久久超碰国产精品2021| …久久精品99久久香蕉国产| 久久久久免费精品国产| 午夜精品久久影院蜜桃| 国产精品一久久香蕉国产线看观看| AAA级久久久精品无码片| 国产成人精品综合久久久| 久久中文精品无码中文字幕| 五月丁香综合激情六月久久| 精品多毛少妇人妻AV免费久久| 嫩草伊人久久精品少妇AV| 久久人人爽人人爽人人片AV麻豆| 久久精品国产久精国产一老狼| 久久综合色之久久综合|