• <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++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              24 隨筆 :: 57 文章 :: 170 評(píng)論 :: 4 Trackbacks

            1          概述

            郵件解析庫(kù)API完全使用面向?qū)ο蠹夹g(shù)設(shè)計(jì),使用C++語(yǔ)言開(kāi)發(fā)的用于郵件解析和組裝的庫(kù)。它提供了一些類用來(lái)解析和組裝Internet郵件,如MimeMessageMimeBodyPart,用于Internet郵件協(xié)議實(shí)現(xiàn)并且遵循RFC822RFC2045規(guī)范。這些API庫(kù)用于應(yīng)用程序的開(kāi)發(fā)。

            1.1        術(shù)語(yǔ)

            RFCRequest For Comments, 請(qǐng)求注解, Internet標(biāo)準(zhǔn)(草案)

            MIMEMultipurpose Internet Mail Extension protocol, 多用途的網(wǎng)際郵件擴(kuò)充協(xié)議

            2          郵件解析庫(kù)的實(shí)現(xiàn)

            2.1        實(shí)現(xiàn)過(guò)程

            本郵件解析庫(kù)(FastMail)參考JavaMail的結(jié)構(gòu)設(shè)計(jì),有與之類似的接口和類。本解析庫(kù)用到基礎(chǔ)庫(kù)Fast庫(kù)參考ACE庫(kù)和STLJava Framework庫(kù)設(shè)計(jì),包含一些字符串處理和容器的類。設(shè)計(jì)它們的目的是為了簡(jiǎn)化庫(kù)的接口,并且盡量與Java庫(kù)的接口兼容,同時(shí)使用完全標(biāo)準(zhǔn)的C++特性,使庫(kù)更易維護(hù)更穩(wěn)固。

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

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

            2.2        文件列表

            FAST基礎(chǔ)庫(kù)

                   comm.\

                   comm.\FastArray.h               數(shù)組類

                   comm.\FastAutoPtr.h            自動(dòng)管理指針類

                   comm.\FastBase.h                FAST庫(kù)公共定義,包含一個(gè)完整的內(nèi)存分配器類

                   comm.\FastHashMap.h         HashMap容器類

                   comm.\FastMap.h                Map容器類

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

                   comm.\FastVector.h                     Vector容器類

             

            郵件解析引擎FastMail庫(kù)

                   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實(shí)體類

                   mime\MimeEntity.h

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

                   mime\MimeMessage.h

                   mime\MimeObject.cpp          郵件解析MIME對(duì)象類

                   mime\MimeObject.h

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

                   mime\MimeParser.h

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

                   mime\MimeUtility.h

             

            3          郵件解析庫(kù)的類

            3.1        類的實(shí)現(xiàn)

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

            下面是所有的類的說(shuō)明:

            類名

            名稱

            說(shuō)明

            基類

            ContentDisposition

            MIME郵件頭

            實(shí)現(xiàn)MIME郵件頭的ContentDisposition

             

            ContentID

            MIME郵件頭

            實(shí)現(xiàn)MIME郵件頭的ContentID

             

            ContentType

            MIME郵件頭

            實(shí)現(xiàn)MIME郵件頭的ContentType

             

            MimeType

            MIME類型類

            實(shí)現(xiàn)MIME的類型,記錄在ContentType里,如text/plain

             

            ConverterFactory

            編碼轉(zhuǎn)換工廠類

            用于創(chuàng)建編碼轉(zhuǎn)換對(duì)象

             

            ICodeConverter

            編碼轉(zhuǎn)換接口類

             

             

            Base64Converter

            BASE64編碼類

            BASE64的編碼和解碼

            ICodeConverter

            QPConverter

            QP編碼類

            Quote-Printable的編碼和解碼

            ICodeConverter

            hdr

            MIME郵件頭類

            實(shí)現(xiàn)MIME郵件頭HEADER

             

            HeaderTokenizer

            郵件頭分解類

            實(shí)現(xiàn)分解MIME郵件頭的各元素,如Content-Typemimetype和各個(gè)參數(shù)。

             

            IMimePart

            MIME郵件段體接口類

            郵件段體類的基類

             

            MimeBodyPart

            MIME郵件段體類

            實(shí)現(xiàn)MIME郵件各個(gè)段體的類

            IMimePart

            MimeMessage

            MIME郵件類

            MIME郵件主類

            IMimePart

            IMultipart

            多部分接口類

            多部分類的基類

             

            MimeMultipart

            多部分實(shí)現(xiàn)類

            保存段體類對(duì)象的多部分容器類

            IMultipart

            InternetAddress

            MIME郵件地址類

            實(shí)現(xiàn)MIME郵件地址的類

             

            InternetHeaders

            MIME郵件頭部分類

            實(shí)現(xiàn)保存MIME各郵件頭的容器類

             

            MailDateFormat

            郵件時(shí)間轉(zhuǎn)換類

            實(shí)現(xiàn)MIME郵件的格式的時(shí)間轉(zhuǎn)換

             

            MailDateParser

            時(shí)間分解處理類

            實(shí)現(xiàn)MIME郵件格式的時(shí)間的分解

             

            MimeInitialization

            郵件解析全局初始化類

            實(shí)現(xiàn)初始化MIME郵件用到的各個(gè)全局變量

             

            MimetypesFileTypeMap

            郵件Mime類型映射類

            實(shí)現(xiàn)郵件MimeTypeFileType類型的映射表,用于查詢

             

            MimeUtility

            MIME郵件分析工具類

            實(shí)現(xiàn)郵件解析用到的各個(gè)解析工具函數(shù)

             

            ParameterList

            參數(shù)列表類

            實(shí)現(xiàn)ContentTypeContentDisposition用到的參數(shù)列表

             

            SystemProperty

            系統(tǒng)環(huán)境類

            實(shí)現(xiàn)讀取系統(tǒng)環(huán)境參數(shù)的方法

             

            UniqueValue

            郵件唯一值生成類

            實(shí)現(xiàn)生成MIME郵件用到的唯一值的類,如boundary

             

            3.2        類圖

            o_mime_class.gif

            3.3        MimeMessage

            現(xiàn)在介紹一下最主要的也是提供主要的調(diào)用接口API的類MimeMessage

            MimeMessage提供了一系列的方法供調(diào)用者使用,如定義了獲取地址信息和獲取郵件正文內(nèi)容的結(jié)構(gòu)(可以為具體的數(shù)據(jù)也可以為一個(gè)MimeMultipart對(duì)象),用來(lái)實(shí)現(xiàn)RFC822MIME規(guī)范。

            一個(gè)MimeMessage對(duì)象里保存了一個(gè)郵件內(nèi)容數(shù)據(jù)(Content),以及一些記錄特定的郵件地址信息(如發(fā)件人(Sender)和收件人(recipients))的屬性(InternetHeaders)。還有關(guān)于這封郵件的結(jié)構(gòu)信息(structural information),以及它的郵件主體(body)的段體類型(Content-Type)。

            下面用圖來(lái)描述一個(gè)MimeMessage對(duì)象內(nèi)部可能的結(jié)構(gòu):

            3.4        MimeMessage類結(jié)構(gòu)圖

             o_mimemessage.gif

             
            。。。未完待續(xù)

            4          參考文獻(xiàn)

            [1]JavaMail 1.2

            [2]JavaMailTM API Design Specification Version 1.2

            [3]C++網(wǎng)絡(luò)編程 1:運(yùn)用ACE和模式消除復(fù)雜性》

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

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

            評(píng)論

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

            # re: 郵件解析框架FastMail庫(kù)介紹 2005-10-29 00:27 Javen-Studio
            現(xiàn)在還不行,我想重新設(shè)計(jì)一下整個(gè)C++庫(kù),郵件解析庫(kù)也想實(shí)現(xiàn)對(duì)輸入流的解析功能,我想以后希望能加入open source
              回復(fù)  更多評(píng)論
              

            # re: 郵件解析框架FastMail庫(kù)介紹 2007-07-12 20:56 woaiyajiaji
            專業(yè),
            俺自己寫(xiě)了一個(gè),
            總共代碼才盡其用500多行,
            主要用了隊(duì)列  回復(fù)  更多評(píng)論
              

            # re: 郵件解析框架FastMail庫(kù)介紹 2007-07-16 21:30 Javen-Studio
            哦,這是我仿照javaMail的體系設(shè)計(jì)的,原本就是想實(shí)現(xiàn)一個(gè)完備的郵件解析庫(kù),因?yàn)楹芏嗟胤蕉伎梢杂玫剑热缛绾螌⒏郊瑘D片和html等封裝成一個(gè)text格式處理,如mht文件等。  回復(fù)  更多評(píng)論
              


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品综合久久久久久88小说| 久久久久亚洲精品日久生情| 91久久精品视频| 久久国产香蕉一区精品| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久精品中文字幕一区| 久久国内免费视频| 久久精品国产亚洲av高清漫画| 国产精品久久久久久搜索| 99久久精品免费看国产| 久久这里只精品99re66| 久久香蕉一级毛片| 久久国产免费直播| 久久国产精品一区| 国产国产成人精品久久| 香蕉久久夜色精品国产2020| 久久这里只有精品久久| 午夜人妻久久久久久久久| 久久婷婷五月综合97色直播| 丁香五月网久久综合| 亚洲欧美日韩久久精品第一区| 欧美日韩中文字幕久久久不卡| 久久精品国产亚洲网站| 好久久免费视频高清| 日产精品久久久久久久| 狠狠人妻久久久久久综合| 99re久久精品国产首页2020| 亚洲国产精品久久电影欧美| 欧美色综合久久久久久| 亚洲国产精品一区二区久久| 一本一道久久综合狠狠老| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区| 久久综合九色综合网站| 99久久无色码中文字幕人妻| 热久久最新网站获取| 久久91精品国产91久| 中文精品99久久国产 | 国产91色综合久久免费| 久久天天躁夜夜躁狠狠| 亚洲成av人片不卡无码久久| 欧美伊人久久大香线蕉综合69|