版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙 緒論1.1 電子郵件收發(fā)軟件的歷史與現(xiàn)狀1.1.1 電子郵件收發(fā)軟件的歷史電子郵件(標(biāo)志:HYPERLINK /view/26815.htm,也被大家昵稱(chēng)為“HYPERLINK /view/8814.htm伊妹兒”),是種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應(yīng)用最廣的服務(wù)。通過(guò)網(wǎng)絡(luò)的HYPERLINK /view/2296101.htm電子郵件系統(tǒng),用戶(hù)可以以非常低廉的價(jià)格(不管發(fā)送到哪里,都只需負(fù)擔(dān)網(wǎng)費(fèi))、非??焖俚姆绞剑◣酌腌娭畠?nèi)可以發(fā)送到世界上任何指定的目的地),與世界上任何一個(gè)角落的網(wǎng)絡(luò)用戶(hù)聯(lián)系。電子郵件可以是文字、圖像、聲音等多種形式。同時(shí),
2、用戶(hù)可以得到大量免費(fèi)的新聞、專(zhuān)題郵件,并實(shí)現(xiàn)輕松的信息搜索。電子郵件的存在極大的方便了人與人之間的溝通與交流,促進(jìn)了社會(huì)的發(fā)展。起源對(duì)于世界上第一封電子郵件(e-mail),根據(jù)資料,有兩種說(shuō)法:電子郵件第一種說(shuō)法1969年10月世界上的第一封電子郵件是由計(jì)算機(jī)科學(xué)家Leonard K.教授發(fā)給他的同事的一條簡(jiǎn)HYPERLINK /view/24045.htm短消息。據(jù)HYPERLINK /view/37506.htm互聯(lián)網(wǎng)周刊報(bào)道世界上的第一封電子郵件是由計(jì)算機(jī)科學(xué)家Leonard K.教授發(fā)給他的同事的一條簡(jiǎn)HYPERLINK /view/24045.htm短消息(時(shí)間應(yīng)該是1969年10
3、月),這條消息只有兩個(gè)字母:“LO”。Leonard K.教授因此被稱(chēng)為電子郵件之父。Leonard K.教授解釋?zhuān)爱?dāng)年我試圖通過(guò)一臺(tái)位于HYPERLINK /view/269543.htm加利福尼亞大學(xué)的計(jì)算機(jī)和另一臺(tái)位于HYPERLINK /view/7407.htm舊金山附近斯坦福研究中心的計(jì)算機(jī)聯(lián)系。我們所做的事情就是從一臺(tái)計(jì)算機(jī)登錄到另一臺(tái)計(jì)算機(jī)。當(dāng)時(shí)登錄的辦法就是鍵入L-O-G。于是我方鍵入L,然后問(wèn)對(duì)方:收到L了嗎?對(duì)方回答:收到了。然后依次鍵入O和G。還未收到對(duì)方收到G的確認(rèn)回答,系統(tǒng)就HYPERLINK /view/559937.htm癱瘓了。所以第一條網(wǎng)上信息就是LO,意
4、思是你好!”第二種說(shuō)法1971年,HYPERLINK /view/2398.htm美國(guó)國(guó)防部資助的HYPERLINK /view/108095.htm阿帕網(wǎng)正在如火如荼的進(jìn)行當(dāng)中,一個(gè)非常尖銳的問(wèn)題出現(xiàn)了:參加此項(xiàng)目的科學(xué)家們?cè)诓煌牡胤阶鲋煌墓ぷ鳎菂s不能很好地分享各自的研究成果。HYPERLINK /view/580366.htm原因很簡(jiǎn)單,因?yàn)榇蠹沂褂玫氖遣煌挠?jì)算機(jī),每個(gè)人的工作對(duì)別人來(lái)說(shuō)都是沒(méi)有用的。他們迫切需要一種能夠借助于HYPERLINK /view/3487.htm網(wǎng)絡(luò)在不同的計(jì)算機(jī)之間傳送數(shù)據(jù)的方法。為阿帕網(wǎng)工作的HYPERLINK /view/1935.htm麻省理
5、工學(xué)院博士Ray Tomlinson把一個(gè)可以在不同的HYPERLINK /view/17634.htm電腦網(wǎng)絡(luò)之間進(jìn)行拷貝的軟件和一個(gè)僅用于單他使用這個(gè)軟件在阿帕網(wǎng)上發(fā)送了第一封電子郵件,收件人是另外一臺(tái)電腦上的自己。盡管這封郵件的內(nèi)容連Tomlinson本人也記不起來(lái)了,但那一刻仍然具備了十足的歷史意義:電子郵件誕生了。Tomlinson選擇HYPERLINK /view/115742.htm符號(hào)作為用戶(hù)名與地址的間隔,因?yàn)檫@個(gè)符號(hào)比較生僻,不會(huì)出現(xiàn)在任何一個(gè)人的名字當(dāng)中,而且這個(gè)符號(hào)的讀音也有著在的含義。阿帕網(wǎng)的科學(xué)家們以極大的熱情歡迎了這個(gè)石破天驚般的創(chuàng)新。他們天才的想法及研究成果,現(xiàn)
6、在可以用最快的-快得難以覺(jué)察-速度來(lái)與同事共享了。許多人回想起來(lái),都覺(jué)得阿帕網(wǎng)所獲得的巨大成功當(dāng)中,電子郵件HYPERLINK /view/1316097.htm功不可沒(méi)。(這個(gè)說(shuō)法也是較為廣傳的。)雖然電子郵件是在70年代發(fā)明的,它卻是在80年才得以興起。70年代的沉寂主要是由于當(dāng)時(shí)使用Arpanet網(wǎng)絡(luò)的人太少,網(wǎng)絡(luò)的速度也僅為目前56Kbps標(biāo)準(zhǔn)速度的二十分之一。受網(wǎng)絡(luò)速度的限制,那時(shí)的用戶(hù)只能發(fā)送些簡(jiǎn)短的信息,根本別想象現(xiàn)在那樣發(fā)送大量照片;到80年代中期,個(gè)人電腦興起,電子郵件開(kāi)始在電腦迷以及大學(xué)生中廣泛傳播開(kāi)來(lái);到90年代中期,互聯(lián)網(wǎng)瀏覽器誕生,全球網(wǎng)民人數(shù)激增,電子郵件被廣為使用
7、。1.1.2 電子郵件收發(fā)軟件的現(xiàn)狀時(shí)至今日,Google 與幾個(gè)大型的網(wǎng)絡(luò)公司都有提供免費(fèi)或者是付費(fèi)的郵件服務(wù)器,其中,免費(fèi)的電子郵件賬號(hào)甚至已經(jīng)提供高達(dá)數(shù)個(gè) GB 的郵件儲(chǔ)存量!對(duì)于一般用戶(hù)來(lái)說(shuō)真是非常夠用了!而對(duì)于企業(yè)級(jí)的大客戶(hù),一般選擇在IDC中搭建自己的郵件服務(wù)器,由專(zhuān)人負(fù)責(zé)日常的維護(hù)。而網(wǎng)絡(luò)辦公平臺(tái)OA的興起,也在逐步弱化電子郵件的地位。未來(lái)充滿(mǎn)了未知,電子郵件的前景尚不明朗。1.2 電子郵件簡(jiǎn)介1.2.1 電子郵件原理1、電子郵件的發(fā)送和接收電子郵件在Internet上發(fā)送和接收的原理可以很HYPERLINK /view/245411.htm形象地用我們?nèi)粘I钪朽]寄HYPERL
8、INK /view/667146.htm包裹來(lái)形容:當(dāng)我們要寄一個(gè)包裹時(shí),我們首先要找到任何一個(gè)有這項(xiàng)業(yè)務(wù)的郵局,在填寫(xiě)完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的HYPERLINK /view/172136.htm郵局,那么對(duì)方取包裹的時(shí)候就必須去這個(gè)郵局才能取出。同樣的,當(dāng)我們發(fā)送電子郵件時(shí),這封郵件是由郵件發(fā)送HYPERLINK /view/899.htm服務(wù)器(任何一個(gè)都可以)發(fā)出,并根據(jù)收信人的地址判斷對(duì)方的郵件接收服務(wù)器而將這封信發(fā)送到該服務(wù)器上,收信人要收取郵件也只能訪(fǎng)問(wèn)這個(gè)服務(wù)器才能完成。2、電子郵件地址的構(gòu)成HYPERLINK /view/126647.htm電子
9、郵件地址的格式由三部分組成。第一部分“HYPERLINK /view/1161303.htmUSER”代表用戶(hù)信箱的帳號(hào),對(duì)于同一個(gè)郵件接收HYPERLINK /view/899.htm服務(wù)器來(lái)說(shuō),這個(gè)帳號(hào)必須是唯一的;第二部分“”是HYPERLINK /view/1268377.htm分隔符;第三部分是HYPERLINK /view/200012.htm用戶(hù)信箱的郵件接收服務(wù)器HYPERLINK /view/43.htm域名,用以標(biāo)志其所在的位置。1.2.2 電子郵件工作過(guò)程1.HYPERLINK /view/2296101.htm電子郵件系統(tǒng)是一種新型的信息系統(tǒng),是通信技術(shù)和HYPERLI
10、NK /view/62176.htm計(jì)算機(jī)技術(shù)結(jié)合的產(chǎn)物。電子郵件的傳輸是通過(guò)電子郵件簡(jiǎn)單HYPERLINK /view/441895.htm傳輸協(xié)議(Simple Mail Transfer Protocol,簡(jiǎn)稱(chēng)SMTP)這一系統(tǒng)軟件來(lái)完成的,它是Internet下的一種電子郵件HYPERLINK /view/185322.htm通信協(xié)議。2.電子郵件的基本原理是在通信網(wǎng)上設(shè)立“電子信箱系統(tǒng)”,它實(shí)際上是一個(gè)HYPERLINK /view/3314.htm計(jì)算機(jī)系統(tǒng)。系統(tǒng)的HYPERLINK /view/25278.htm硬件是一個(gè)高性能、大容量的計(jì)算機(jī)。HYPERLINK /view/4
11、480.htm硬盤(pán)作為信箱的存儲(chǔ)介質(zhì),在硬盤(pán)上為用戶(hù)分一定的HYPERLINK /view/1375172.htm存儲(chǔ)空間作為用戶(hù)的“信箱”,每位用戶(hù)都有屬于自己的個(gè)HYPERLINK /view/54008.htm電子信箱。并確定個(gè)用戶(hù)名和用戶(hù)可以自己隨意修改的口令。HYPERLINK /view/1375172.htm存儲(chǔ)空間包含存放所收信件、HYPERLINK /view/28525.htm編輯信件以及信件存檔三部分空間,用戶(hù)使用口令開(kāi)啟自己的信箱,并進(jìn)行發(fā)信、讀信、編輯、轉(zhuǎn)發(fā)、存檔等各種操作。系統(tǒng)功能主要由軟件實(shí)現(xiàn)。3.電子郵件的通信是在信箱之間進(jìn)行的。用戶(hù)首先開(kāi)啟自己的信箱,然后通過(guò)
12、鍵入命令的方式將需要發(fā)送的郵件發(fā)到對(duì)方的信箱中。郵件在信箱之間進(jìn)行傳遞和交換,也可以與另個(gè)郵件系統(tǒng)進(jìn)行傳遞和交換。收方在取信時(shí),使用特定HYPERLINK /view/261440.htm帳號(hào)從信箱提取。電子郵件的工作過(guò)程遵循HYPERLINK /view/88584.htm客戶(hù)-HYPERLINK /view/899.htm服務(wù)器模式。每份電子郵件的發(fā)送都要涉及到發(fā)送方與接收方,發(fā)送方構(gòu)成客戶(hù)端,而接收方構(gòu)成服務(wù)器,服務(wù)器含有眾多用戶(hù)的HYPERLINK /view/54008.htm電子信箱。發(fā)送方通過(guò)郵件客戶(hù)HYPERLINK /view/17674.htm程序,將編輯好的電子郵件向郵局
13、服務(wù)器(HYPERLINK /view/5450.htmSMTP服務(wù)器)發(fā)送。郵局服務(wù)器識(shí)別接收者的地址,并向管理該地址的HYPERLINK /view/54241.htm郵件服務(wù)器(HYPERLINK /view/21929.htmPOP3服務(wù)器)發(fā)送消息。HYPERLINK /view/54241.htm郵件服務(wù)器識(shí)將消息存放在接收者的HYPERLINK /view/54008.htm電子信箱內(nèi),并告知接收者有新郵件到來(lái)。接收者通過(guò)郵件客戶(hù)HYPERLINK /view/5295513.htm程序連接到服務(wù)器后,就會(huì)看到服務(wù)器的通知,進(jìn)而打開(kāi)自己的HYPERLINK /view/54008
14、.htm電子信箱來(lái)查收郵件。通常Internet上的個(gè)人用戶(hù)不能直接接收電子郵件,而是通過(guò)申請(qǐng)HYPERLINK /view/855.htmISPHYPERLINK /view/23880.htm主機(jī)的一個(gè)HYPERLINK /view/54008.htm電子信箱,由ISP主機(jī)負(fù)責(zé)電子郵件的接收。一旦有用戶(hù)的電子郵件到來(lái),ISPHYPERLINK /view/23880.htm主機(jī)就將郵件移到用戶(hù)的HYPERLINK /view/54008.htm電子信箱內(nèi),并通知用戶(hù)有新郵件。因此,當(dāng)發(fā)送一條電子郵件給一另一個(gè)客戶(hù)時(shí),電子郵件首先從用戶(hù)計(jì)算機(jī)發(fā)送到ISPHYPERLINK /view/238
15、80.htm主機(jī),再到Internet,再到收件人的ISP主機(jī),最后到收件人的HYPERLINK /view/920814.htm個(gè)人計(jì)算機(jī)。ISPHYPERLINK /view/23880.htm主機(jī)起著“HYPERLINK /view/172136.htm郵局”的作用,管理著眾多用戶(hù)的電子信箱。每個(gè)用戶(hù)的HYPERLINK /view/54008.htm電子信箱實(shí)際上就是用戶(hù)所申請(qǐng)的帳號(hào)名。每個(gè)用戶(hù)的電子郵件信箱都要占用ISPHYPERLINK /view/23880.htm主機(jī)一定容量的硬盤(pán)空間,由于這一空間是有限的,因此用戶(hù)要定期查收和閱讀HYPERLINK /view/54008.h
16、tm電子信箱中的郵件,以便騰出空間來(lái)接收新的郵件。1.2.3 電子郵件地址格式domain_name為HYPERLINK /view/43.htm域名的HYPERLINK /view/390932.htm標(biāo)識(shí)符,也就是郵件必須要交付到的郵件目的地的HYPERLINK /view/43.htm域名。而somebody則是在該HYPERLINK /view/43.htm域名上的郵箱地址。后綴一般則代表了該HYPERLINK /view/43.htm域名的性質(zhì),與地區(qū)的代碼。HYPERLINK /view/43.htm域名真正從技術(shù)上而言是一個(gè)郵件HYPERLINK /view/1077.htm交換
17、機(jī),而不是一個(gè)機(jī)器名。常見(jiàn)的電子郵件HYPERLINK /view/36190.htm協(xié)議有以下幾種:HYPERLINK /view/5450.htmSMTP(HYPERLINK /view/576460.htm簡(jiǎn)單郵件傳輸協(xié)議)、HYPERLINK /view/5404.htmPOP3(HYPERLINK /view/544380.htm郵局協(xié)議)、HYPERLINK /view/17877.htmIMAP(Internet郵件訪(fǎng)問(wèn)協(xié)議)。這幾種協(xié)議都是由HYPERLINK /view/7729.htmTCP/IP協(xié)議族定義的。HYPERLINK /view/5450.htmSMTP(Sim
18、ple Mail Transfer Protocol):SMTP主要負(fù)責(zé)底層的郵件系統(tǒng)如何將郵件從一臺(tái)機(jī)器傳至另外一臺(tái)機(jī)器。HYPERLINK /view/33001.htmPOP(Post Office Protocol):版本為HYPERLINK /view/5404.htmPOP3,POP3是把郵件從HYPERLINK /view/8622.htm電子郵箱中傳輸?shù)奖镜赜?jì)算機(jī)的協(xié)議。HYPERLINK /view/17877.htmIMAP(Internet Message Access Protocol):版本為HYPERLINK /view/718489.htmIMAP4,是POP3的
19、一種替代協(xié)議,提供了郵件檢索和郵件處理的新功能,這樣用戶(hù)可以完全不必下載郵件正文就可以看到郵件的標(biāo)題摘要,從郵件HYPERLINK /view/930.htm客戶(hù)端HYPERLINK /view/37.htm軟件就可以對(duì)HYPERLINK /view/899.htm服務(wù)器上的郵件和HYPERLINK /view/386894.htm文件夾目錄等進(jìn)行操作。IMAP協(xié)議增強(qiáng)了電子郵件的靈活性,同時(shí)也減少了HYPERLINK /view/1522.htm垃圾郵件對(duì)本地系統(tǒng)的直接危害,同時(shí)相對(duì)節(jié)省了用戶(hù)察看電子郵件的時(shí)間。除此之外,IMAP協(xié)議可以記憶用戶(hù)在HYPERLINK /view/129742
20、4.htm脫機(jī)狀態(tài)下對(duì)郵件的操作(例如移動(dòng)郵件,刪除郵件等)在下一次打開(kāi)網(wǎng)絡(luò)連接的時(shí)候會(huì)自動(dòng)執(zhí)行。在大多數(shù)流行的電子HYPERLINK /view/2318149.htm郵件客戶(hù)端程序里面都集成了對(duì)HYPERLINK /view/16147.htmSSL連接的支持。除此之外,很多HYPERLINK /view/40927.htm加密技術(shù)也應(yīng)用到電子郵件的發(fā)送接受和閱讀過(guò)程中。他們可以提供128位到2048位不等的加密強(qiáng)度。無(wú)論是單向加密還是HYPERLINK /view/1145164.htm對(duì)稱(chēng)密鑰加密也都得到廣泛支持。1.2.4 電子郵件特點(diǎn)簡(jiǎn)單來(lái)說(shuō),即(1)傳播速度快(2)非常便捷(3)
21、成本低廉(4)廣泛的交流對(duì)象(5)信息多樣化(6)比較安全1.2.5 電子郵件系統(tǒng)電子郵件服務(wù)由專(zhuān)門(mén)的服務(wù)器提供,Gmail, Hotmail,網(wǎng)易HYPERLINK /view/47477.htm郵箱,HYPERLINK /view/706628.htm新浪郵箱等郵箱服務(wù)也是建立在HYPERLINK /view/921572.htm電子郵件服務(wù)器基礎(chǔ)上,但是大型郵件服務(wù)商的系統(tǒng)一般是自主開(kāi)發(fā)或是對(duì)其他技術(shù)二次開(kāi)發(fā)實(shí)現(xiàn)的。主要的HYPERLINK /view/576456.htm電子郵件服務(wù)器主要有以下兩大塊:一、基于Unix/Linux平臺(tái)的郵件系統(tǒng)1. Sendmail郵件系統(tǒng)(支持SMT
22、P)和dovecot郵件系統(tǒng)(支持POP3)Sendmail可以說(shuō)是郵件的鼻祖,迄今為止有50多年的歷史。本當(dāng)郵件是其中的一個(gè)典型代表2.基于Postfix/Qmail的郵件系統(tǒng)。Postfix/Qmail技術(shù)是在Sendmail技術(shù)上發(fā)展起來(lái)的,迄今為止歷史不超過(guò)10年。 如網(wǎng)易郵箱的MTA 是電子處理軟件。基于Postfix,yahoo的郵箱是基于Qmail系統(tǒng)。二. 基于 Windows平臺(tái)的郵件系統(tǒng)1.HYPERLINK /view/2353.htm微軟的ExchangeHYPERLINK /view/1677840.htm郵件系統(tǒng)。2. IBM Lotus Domino 郵件系統(tǒng)。3
23、. Scalix 郵件系統(tǒng)。4.HYPERLINK /view/1859400.htmZimbra郵件系統(tǒng)。5. MDeamon 郵件系統(tǒng)。其中Exchange 郵件系統(tǒng)由于和Windows 整合,便于管理。是在企業(yè)中使用數(shù)量最多的郵件系統(tǒng)。 IBM Lotus Domino 則綜合功能較強(qiáng),大型企業(yè)使用較多,基于Postfix 的郵件系統(tǒng)則需要有較強(qiáng)的技術(shù)力量才能實(shí)現(xiàn),但是性能可以達(dá)到非常高,而且安全性很好,同時(shí)軟件是開(kāi)源免費(fèi)的。1.3 本文的主要研究?jī)?nèi)容與組織結(jié)構(gòu)1.3.1 本文的主要研究?jī)?nèi)容本文對(duì)電子郵件及相關(guān)網(wǎng)絡(luò)技術(shù)進(jìn)行了初步的探索和研究。主要研究?jī)?nèi)容包括以下幾個(gè)方面:研究Linux下
24、電子郵件客戶(hù)端收發(fā)軟件實(shí)現(xiàn)的各種方法。研究電子郵件相關(guān)協(xié)議和編解碼技術(shù)。設(shè)計(jì)一種電子郵件客戶(hù)端收發(fā)模塊。1.3.1 本文的組織結(jié)構(gòu)本設(shè)計(jì)基于Linux系統(tǒng)下的QT集成開(kāi)發(fā)環(huán)境編寫(xiě)。組織結(jié)構(gòu)如下:第二章對(duì)研究課題的意義及可行性進(jìn)行分析,確定本軟件以目前的條件可以完成。第三章對(duì)系統(tǒng)的總體設(shè)計(jì)進(jìn)行描述。首先對(duì)電子郵件的體系結(jié)構(gòu)進(jìn)行了簡(jiǎn)單的介紹,明確了本設(shè)計(jì)模塊在系統(tǒng)中的地位和作用。接著提出了系統(tǒng)的總體設(shè)計(jì)方案和依據(jù)。系統(tǒng)分兩大部分進(jìn)行設(shè)計(jì):后臺(tái)電子郵件傳輸協(xié)議的實(shí)現(xiàn)和前臺(tái)可視用戶(hù)界面的顯示。第四章為后臺(tái)電子郵件傳輸協(xié)議實(shí)現(xiàn)部分的設(shè)計(jì)。該部分分為網(wǎng)絡(luò)接口層實(shí)現(xiàn)模塊、傳輸層實(shí)現(xiàn)模塊和應(yīng)用層實(shí)現(xiàn)模塊三個(gè)層
25、次進(jìn)行設(shè)計(jì)。涉及操作系統(tǒng)的選用、Socket編程技術(shù),以及SMTP、POP3和MIME等多種電子郵件傳輸協(xié)議的應(yīng)用。第五章對(duì)前臺(tái)可視用戶(hù)界面的顯示部分進(jìn)行設(shè)計(jì)。該部分由界面顯示模塊和前后臺(tái)的連接模塊組成。其中,界面顯示模塊主要使用Qt編程技術(shù),而前后臺(tái)的連接模塊主要涉及對(duì)磁盤(pán)文件的操作和管理。第六章對(duì)本設(shè)計(jì)中的各個(gè)子模塊進(jìn)行了詳細(xì)測(cè)試,并給出了系統(tǒng)的總體運(yùn)行結(jié)果。結(jié)論中對(duì)現(xiàn)有工作進(jìn)行了總結(jié),并對(duì)簡(jiǎn)易電子郵件客戶(hù)端接收模塊的實(shí)現(xiàn)提出了進(jìn)行一步的構(gòu)想。2 電子郵件客戶(hù)端可行性分析2.1 研究課題的意義現(xiàn)有的電子郵件客戶(hù)端都是基于臺(tái)式機(jī)或筆記本平臺(tái)安裝的,使用時(shí)需大量調(diào)用系統(tǒng)類(lèi)庫(kù),資源消耗大,對(duì)于目
26、前將程序向嵌入式等小型化載體進(jìn)行遷移帶來(lái)許多不便。在日常的工作中,找不到一款簡(jiǎn)單易用的,且支持企業(yè)內(nèi)部郵箱的手機(jī)客戶(hù)端。目前流行的嵌入式操作系統(tǒng)有Windows CE、IOS、Android和Linux等。前兩者使用時(shí)會(huì)收取一定的費(fèi)用,而后兩者作為開(kāi)源的操作系統(tǒng),可以自由傳播和修改。而Android是基于Linux內(nèi)核的操作系統(tǒng),所以選擇Linux操作系統(tǒng)作為簡(jiǎn)易郵件客戶(hù)端的運(yùn)行環(huán)境具有很好的擴(kuò)展性?,F(xiàn)有的郵件客戶(hù)端軟件,多是基于Windows操作系統(tǒng)編寫(xiě),無(wú)法直接應(yīng)用于Linux運(yùn)行環(huán)境,這使得模塊設(shè)計(jì)時(shí)無(wú)法直接利用他人已經(jīng)編寫(xiě)好的郵件收發(fā)程序。 因此,自制一個(gè)運(yùn)行在Linux操作系統(tǒng)下的簡(jiǎn)
27、易電子郵件客戶(hù)端收發(fā)模塊成為必然。其次,由于是自主開(kāi)發(fā)的電子郵件收發(fā)模塊,具有很高的可擴(kuò)展性,未來(lái)可以很方便的添加目前流行的電子郵件推送功能,實(shí)現(xiàn)郵件接收的自動(dòng)提醒?;蛘咴卩]件安全性方面,也可以非常簡(jiǎn)單的實(shí)現(xiàn)僅基于客戶(hù)端的自定義垃圾郵件的濾除工作,或特定郵件的選擇接收功能。并且結(jié)合系統(tǒng)已安裝的病毒查殺軟件,還可以自動(dòng)完成郵件接收后的嵌入式軟件病毒掃描功能等,為加強(qiáng)電子郵件的安全性和可靠性提供參考意見(jiàn)。2.2 可行性報(bào)告2.2.1 編寫(xiě)目地通過(guò)本可行性研究報(bào)告得出此軟件能否開(kāi)發(fā),可否供試用。2.2.2 背景所建議開(kāi)發(fā)的軟件系統(tǒng)的名稱(chēng):Linux系統(tǒng)郵件客戶(hù)端開(kāi)發(fā)。開(kāi)發(fā)者:太原理工大學(xué)軟件工程20
28、10級(jí)1017班焦浩。用戶(hù):所有需要簡(jiǎn)易郵件發(fā)送客戶(hù)端的用戶(hù)。2.2.3 需求功能:實(shí)現(xiàn)電子郵件及附件的發(fā)送。性能要求:客戶(hù)端界面簡(jiǎn)單實(shí)用,發(fā)送郵件快速便捷。2.2.4 目標(biāo)主要開(kāi)發(fā)目標(biāo):開(kāi)發(fā)完成后,用此客戶(hù)端可以實(shí)現(xiàn)電子郵件,通過(guò)SSL連接,smtp協(xié)議發(fā)字符串。通過(guò)發(fā)送服務(wù)器將郵件發(fā)送至郵件接收服務(wù)器,并確保用戶(hù)能收到電子郵件。2.2.5 開(kāi)發(fā)語(yǔ)言與環(huán)境的選擇開(kāi)發(fā)語(yǔ)言選擇為C+,C+語(yǔ)言的有點(diǎn)如下:C+設(shè)計(jì)成靜態(tài)類(lèi)型、和C同樣高效且可移植的多用途程序設(shè)計(jì)語(yǔ)言。C+設(shè)計(jì)直接的和廣泛的支持多種HYPERLINK /view/431342.htm程序設(shè)計(jì)風(fēng)格(程序化程序設(shè)計(jì)、資料抽象化、HYPE
29、RLINK /view/249254.htm面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì))。C+設(shè)計(jì)無(wú)需復(fù)雜的程序設(shè)計(jì)環(huán)境。C+語(yǔ)言簡(jiǎn)潔靈活,運(yùn)算符的數(shù)據(jù)結(jié)構(gòu)豐富、具有結(jié)構(gòu)化控制語(yǔ)句、程序執(zhí)行效率高,而且同時(shí)具有高級(jí)語(yǔ)言與匯編語(yǔ)言的優(yōu)點(diǎn),與其它語(yǔ)言相比 ,C語(yǔ)言具有可以直接訪(fǎng)問(wèn)物理地址的優(yōu)點(diǎn),與匯編語(yǔ)言相比又具有良好的可讀性的可移植性??偟脕?lái)說(shuō),C+語(yǔ)言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是盡量兼容C,二是支持面向?qū)ο蟮姆椒?。它操持了C的簡(jiǎn)潔、高效的接近匯編語(yǔ)言等特點(diǎn),對(duì)C的類(lèi)型系統(tǒng)進(jìn)行了改革的擴(kuò)充,因此C+比C更安全,C+的編譯系統(tǒng)能檢查出更多的類(lèi)型錯(cuò)誤。另外,由于C語(yǔ)言的廣泛使用,因而極大的促進(jìn)了C+的普及和推
30、廣。C+語(yǔ)言最有意義的方面是支持面向?qū)ο蟮奶卣?。雖然與C的兼容使得C+具有雙重特點(diǎn),但他在概念上完全與C不同,更具面向?qū)ο蟮奶卣?。出于保證語(yǔ)言的簡(jiǎn)潔和運(yùn)行高效等方面的考慮,C+的很多特性都是以庫(kù)(如STL)或其他的形式提供的,而沒(méi)有直接添加到語(yǔ)言本身里。關(guān)于此類(lèi)話(huà)題,HYPERLINK /view/687922.htmBjarne Stroustrup的C+語(yǔ)言的設(shè)計(jì)和演化(1994)里做了詳盡的陳述。C+引入了面向?qū)ο蟮母拍?,使得開(kāi)發(fā)人機(jī)交互類(lèi)型的應(yīng)用程序更為簡(jiǎn)單、快捷。很多優(yōu)秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C+。開(kāi)發(fā)壞境選擇Qt 5.2
31、.1。Qt是一個(gè)1991年由奇趣科技開(kāi)發(fā)的跨平臺(tái)HYPERLINK /view/824.htmC+HYPERLINK /view/185360.htm圖形用戶(hù)界面HYPERLINK /view/330120.htm應(yīng)用程序開(kāi)發(fā)框架。它既可以開(kāi)發(fā)HYPERLINK /view/25309.htmGUI程序,也可用于開(kāi)發(fā)非GUI程序,比如控制臺(tái)工具和服務(wù)器。Qt是HYPERLINK /view/125370.htm面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展(稱(chēng)為元對(duì)象編譯器(Meta Object Compiler, moc))以及一些宏,易于擴(kuò)展,允許組件編程。2014年4月,跨平臺(tái)集成開(kāi)發(fā)環(huán)境Qt
32、 Creator 3.1.0正式發(fā)布,實(shí)現(xiàn)了對(duì)于iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無(wú)Python接口的GDB調(diào)試支持,集成了基于Clang的C/C+代碼模塊,并對(duì)Android支持做出了調(diào)整,至此實(shí)現(xiàn)了全面支持iOS、Android、WP。優(yōu)良的跨平臺(tái)特性:Qt支持下列操作系統(tǒng): Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS3
33、90,QNX 等等。面向?qū)ο驫t 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對(duì)于用戶(hù)開(kāi)發(fā)來(lái)說(shuō)是非常 方便的。 Qt 提供了一種稱(chēng)為 signals/slots 的安全類(lèi)型來(lái)替代 callback,這使得各個(gè)元件 之間的協(xié)同工作變得十分簡(jiǎn)單。豐富的 APIQt 包括多達(dá) 250 個(gè)以上的 C+ 類(lèi),還提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 類(lèi)。甚至還包括正則表達(dá)式的處理 功能。支持 2D/3D 圖形渲染,支持 OpenGL。大量的開(kāi)發(fā)文檔。XML
34、支持。2.2.6 條件與限制硬件:必須有一臺(tái)個(gè)人計(jì)算機(jī)開(kāi)發(fā)環(huán)境:Qt 5.2.1可利用的信息與資源:網(wǎng)絡(luò)信息以及一些出版的書(shū)刊。2.2.7 可行性結(jié)論由于進(jìn)行開(kāi)發(fā)研究的一些東西都是開(kāi)源的,成本幾乎沒(méi)有。所以在技術(shù)、經(jīng)濟(jì)、操作上都具有高度的可行性,可以立即開(kāi)始進(jìn)行。3 系統(tǒng)的總體設(shè)計(jì)3.1 系統(tǒng)總體構(gòu)成預(yù)設(shè)計(jì)的簡(jiǎn)單電子郵件客戶(hù)端發(fā)送模塊是一個(gè)軟件包。它包含郵件服務(wù)器的連接、用戶(hù)名密碼的驗(yàn)證、SSL協(xié)議加密、收件人地址、郵件的文本信息及附件信息。驗(yàn)證成功,發(fā)送成功驗(yàn)證郵件信息連接SMTP服務(wù)器電子郵件發(fā)送模塊 圖3- SEQ 圖3- * ARABIC 1 發(fā)送模塊工作流程驗(yàn)證成功,發(fā)送成功驗(yàn)證郵件
35、信息連接SMTP服務(wù)器電子郵件發(fā)送模塊3.2 發(fā)送郵件要發(fā)送郵件,用戶(hù)首先通過(guò)客戶(hù)端界面創(chuàng)建郵件。圖形化界面文件Qt中的.ui提供在屏幕上顯示的模塊讓用戶(hù)填寫(xiě)與選擇選項(xiàng),來(lái)幫助用戶(hù)以規(guī)定的字段格式撰寫(xiě)電子郵件報(bào)文。郵件撰寫(xiě)完成后,由MTA客戶(hù)端以規(guī)定的郵件傳輸協(xié)議發(fā)送出去。3.3 后臺(tái)電子郵件傳輸協(xié)議的實(shí)現(xiàn)OSI是一個(gè)開(kāi)放性的通行系統(tǒng)互連參考模型,他是一個(gè)定義的非常好的協(xié)議規(guī)范。OSI模型有7層結(jié)構(gòu),每層都可以有幾個(gè)子層。 OSI的7層從上到下分別是 7 HYPERLINK /view/239619.htm應(yīng)用層 6 HYPERLINK /view/239615.htm表示層 5 會(huì)話(huà)層 4
36、HYPERLINK /view/239605.htm傳輸層 3 HYPERLINK /view/239600.htm網(wǎng)絡(luò)層 2 HYPERLINK /view/239592.htm數(shù)據(jù)鏈路層 1 HYPERLINK /view/239585.htm物理層 其中高層,即7、6、5、4層定義了HYPERLINK /view/330120.htm應(yīng)用程序的功能,下面3層,即3、2、1層主要面向通過(guò)網(wǎng)絡(luò)的端到端的HYPERLINK /view/166248.htm數(shù)據(jù)流。應(yīng)用層(Application Layer)與其它計(jì)算機(jī)進(jìn)行通訊的一個(gè)應(yīng)用,它是對(duì)應(yīng)HYPERLINK /view/330120.h
37、tm應(yīng)用程序的通信服務(wù)的。例如,一個(gè)沒(méi)有通信功能的字處理程序就不能執(zhí)行通信的代碼,從事字處理工作的程序員也不關(guān)心OSI的第7層。但是,如果添加了一個(gè)傳輸文件的選項(xiàng),那么字處理器的程序員就需要實(shí)現(xiàn)OSI的第7層。示例:telnet,HTTP,FTP,NFS,SMTP等。表示層(Presentation Layer)這一層的主要功能是定義數(shù)據(jù)格式及加密。例如,F(xiàn)TP允許你選擇以二進(jìn)制或ASCII格式傳輸。如果選擇二進(jìn)制,那么發(fā)送方和接收方不改變文件的內(nèi)容。如果選擇ASCII格式,發(fā)送方將把HYPERLINK /view/300107.htm文本從發(fā)送方的HYPERLINK /view/51987.
38、htm字符集轉(zhuǎn)換成標(biāo)準(zhǔn)的ASCII后發(fā)送數(shù)據(jù)。在接收方將標(biāo)準(zhǔn)的ASCII轉(zhuǎn)換成接收方計(jì)算機(jī)的HYPERLINK /view/51987.htm字符集。示例:加密,ASCII等。會(huì)話(huà)層(Session Layer)它定義了如何開(kāi)始、控制和結(jié)束一個(gè)會(huì)話(huà),包括對(duì)多個(gè)雙向消息的控制和管理,以便在只完成連續(xù)消息的一部分時(shí)可以通知應(yīng)用,從而使表示層看到的數(shù)據(jù)是連續(xù)的,在某些情況下,如果表示層收到了所有的數(shù)據(jù),則用數(shù)據(jù)代表表示層。示例:RPC,SQL等。傳輸層(Transport Layer)這層的功能包括是否選擇差錯(cuò)恢復(fù)協(xié)議還是無(wú)差錯(cuò)恢復(fù)協(xié)議,及在同一HYPERLINK /view/23880.htm主機(jī)
39、上對(duì)不同應(yīng)用的HYPERLINK /view/166248.htm數(shù)據(jù)流的輸入進(jìn)行復(fù)用,還包括對(duì)收到的順序不對(duì)的HYPERLINK /view/25880.htm數(shù)據(jù)包的重新排序功能。示例:TCP,UDP,SPX。網(wǎng)絡(luò)層(Network Layer)這層對(duì)端到端的包傳輸進(jìn)行定義,它定義了能夠標(biāo)識(shí)所有結(jié)點(diǎn)的HYPERLINK /view/893778.htm邏輯地址,還定義了HYPERLINK /view/18655.htm路由實(shí)現(xiàn)的方式和學(xué)習(xí)的方式。為了適應(yīng)HYPERLINK /view/545115.htm最大傳輸單元長(zhǎng)度小于包長(zhǎng)度的HYPERLINK /view/305337.htm傳輸介
40、質(zhì),網(wǎng)絡(luò)層還定義了如何將一個(gè)包分解成更小的包的分段方法。示例:IP,IPX等。數(shù)據(jù)鏈路層(Data Link Layer)它定義了在單個(gè)鏈路上如何傳輸數(shù)據(jù)。這些協(xié)議與被討論的各種介質(zhì)有關(guān)。示例:ATM,F(xiàn)DDI等。物理層(Physical Layer)OSI的物理層規(guī)范是有關(guān)HYPERLINK /view/305337.htm傳輸介質(zhì)的特性標(biāo)準(zhǔn),這些規(guī)范通常也參考了其他組織制定的標(biāo)準(zhǔn)。連接頭、幀、幀的使用、電流、編碼及光調(diào)制等都屬于各種物理層規(guī)范中的內(nèi)容。物理層常用多個(gè)規(guī)范完成對(duì)所有細(xì)節(jié)的定義。示例:Rj45,802.3等。3.4 前臺(tái)用戶(hù)界面的顯示前臺(tái)用戶(hù)界面顯示模塊由界面編程和前后臺(tái)連接兩
41、個(gè)模塊組成。界面顯示模塊(界面文件)提供友好的圖形用戶(hù)界面,允許用戶(hù)使用鍵盤(pán)和鼠標(biāo)與系統(tǒng)進(jìn)行交互。本文使用Qt軟件設(shè)計(jì),撰寫(xiě)郵件功能設(shè)計(jì)為彈出式對(duì)話(huà)框操作。當(dāng)用戶(hù)發(fā)送成功成功時(shí),會(huì)提示發(fā)送郵件成功。而如果無(wú)法完成郵件的正常發(fā)送,則提示連接出現(xiàn)錯(cuò)誤。前后臺(tái)連接模塊是前后臺(tái)消息通信的接口,主要完成界面顯示數(shù)據(jù)與后臺(tái)郵件操作信息的統(tǒng)一,及時(shí)完成對(duì)信件的存儲(chǔ)或顯示界面的更新。4 后臺(tái)電子郵件傳輸協(xié)議的實(shí)現(xiàn)4.1 操作系統(tǒng)的選用Linux是當(dāng)今發(fā)展最為迅速并引起最多關(guān)注的操作系統(tǒng)之一。作為一種自由軟件,任何人都可以從網(wǎng)上取得它的源代碼并按照自己的要求進(jìn)行修改。Linux支持廣大的硬件平臺(tái),它的裝機(jī)量的增
42、長(zhǎng)率超過(guò)別的操作系統(tǒng),而且許多著名的軟件公司、計(jì)算機(jī)公司都宣布生產(chǎn)和Linux靠攏的產(chǎn)品。Linux操作系統(tǒng)在短短幾年內(nèi)得到了迅速的發(fā)展,這與Linux的良好特性是分不開(kāi)的,Linux包含了Unix的全部功能和特性。具體而言包括如下幾個(gè)方面:(1)開(kāi)放性開(kāi)放性是指系統(tǒng)遵循開(kāi)放系統(tǒng)互連(OSI)國(guó)際標(biāo)準(zhǔn)。凡遵循該標(biāo)準(zhǔn)所開(kāi)發(fā)的軟件和硬件,都可以彼此兼容,并方便的實(shí)現(xiàn)互聯(lián)。(2)多用戶(hù)多用戶(hù)是指系統(tǒng)資源可以被不同的用戶(hù)各自擁有使用,即每個(gè)用戶(hù)對(duì)自己的資源:如文件、設(shè)備,有特定的權(quán)限,互不影響。(3)多任務(wù)多任務(wù)是現(xiàn)代計(jì)算機(jī)的最重要的一個(gè)特點(diǎn)。它是指計(jì)算機(jī)在同一時(shí)間內(nèi)可以執(zhí)行多個(gè)程序,并且程序之間不互
43、相妨礙。Linux采用搶占調(diào)度多任務(wù)的方式,即每個(gè)程序都一直運(yùn)行到操作系統(tǒng)搶占CPU讓其它程序運(yùn)行為止。這使得用戶(hù)可以充分的利用計(jì)算機(jī)資源。(4)豐富的網(wǎng)絡(luò)功能Linux在通信和網(wǎng)絡(luò)功能方面優(yōu)于其它的操作系統(tǒng)。因?yàn)長(zhǎng)inux中包含了緊密的和內(nèi)核連接在一起的連接網(wǎng)絡(luò)的能力。其網(wǎng)絡(luò)功能主要包括:大量支持Interact的軟件、已有的簡(jiǎn)潔的文件傳輸和遠(yuǎn)程訪(fǎng)問(wèn)功能。(5)可靠的系統(tǒng)安全Linux采取了許多安全技術(shù)措旌,包括對(duì)讀、寫(xiě)進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計(jì)跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)多用戶(hù)環(huán)境中的用戶(hù)提供了必要的安全保障。(6)良好的可移植性L(fǎng)inux是一種可移植的操作系統(tǒng),能夠從微機(jī)到大型計(jì)算
44、機(jī)的任何環(huán)境和任何平臺(tái)上運(yùn)行,可移植性為運(yùn)行Linux的不同計(jì)算機(jī)平臺(tái)與其它任何機(jī)器進(jìn)行準(zhǔn)確而有效的通信提供了手段。基于以上特點(diǎn),簡(jiǎn)易郵件客戶(hù)端模塊平臺(tái)的確定正是利用了Linux系統(tǒng)強(qiáng)大的網(wǎng)絡(luò)功能和優(yōu)良的可移植性以及可靠的系統(tǒng)安全性,并為今后將程序向嵌入式等小型化載體進(jìn)行遷移打下堅(jiān)實(shí)的基礎(chǔ)。Linux不像Windows操作系統(tǒng),它不是一個(gè)由一家商業(yè)公司維護(hù)的軟件,只有一個(gè)包裝。Linux是可以任意包裝自由配置的東西。任何一個(gè)人,一家公司都可以按照自己的想法,比如加一點(diǎn)功能,如多種語(yǔ)言支持等,做一個(gè)Linux發(fā)布套件出來(lái)。這些Linux發(fā)布套件雖然核心部分都一樣,但是他們所帶的各種軟件,缺省的配
45、置都不一樣。區(qū)別比如用一種Linux發(fā)布套件硬件容易配置,各種軟件也好安裝,用另外一種發(fā)布套件也許執(zhí)行速度快,再一種也許支持中文比較好。所以從一開(kāi)始選擇發(fā)布套件就必須非常小心,否則很容易重新返工。 4.2 Linux套接字(Socket)編程4.2.1 安全套階層協(xié)議簡(jiǎn)介電子郵件在傳輸層使用TCP進(jìn)行傳輸,使用TCP傳輸就是建立一個(gè)連接。在TCP的傳輸中一個(gè)連接由兩個(gè)端點(diǎn)組成,一個(gè)連接代表的是發(fā)送和接收兩端應(yīng)用程序之間的一個(gè)通信。通常,一個(gè)連接使用公式(host,port)表示,host是主機(jī),port是端口。對(duì)于程序員而言所說(shuō)的TCP端口實(shí)際是數(shù)據(jù)端口的概念,這種端口其實(shí)是軟件端口應(yīng)用程序。
46、TCP端口能被幾個(gè)應(yīng)用程序共享,可以理解為一個(gè)應(yīng)用程序可以為不同的連接提供服務(wù)。TCP/IP中將端口分為兩部分:一部分是保留端口即熟知端口,如Telnet使用23號(hào)端口。另一部分是自由端口,可以在通信之前進(jìn)行申請(qǐng)。Linux中小于1024的所有端口是保留給系統(tǒng)使用的,普通的進(jìn)程應(yīng)當(dāng)使用大于1024且小于65535范圍內(nèi)的端口號(hào)。SMTP協(xié)議使用25號(hào)端口,POP3協(xié)議使用110號(hào)端。電子郵箱默認(rèn)使用的TCP端口號(hào)如下:表4-1 電子郵箱默認(rèn)端口協(xié)議作用純文本或加密會(huì)話(huà)單純文本會(huì)話(huà)單純加密會(huì)話(huà)POP3收郵件110995IMAP收郵件143993SMTP收郵件25465(非標(biāo)準(zhǔn))MSA收郵件587
47、套接字(Sockets)最早是作為BSD規(guī)范提出來(lái)的,并已成為L(zhǎng)inux操作系統(tǒng)下TCP/IP網(wǎng)絡(luò)編程標(biāo)準(zhǔn),是進(jìn)行程序間通信的一種方法。套接字是網(wǎng)絡(luò)通信的基本操作單元,它提供了不同主機(jī)間的進(jìn)程雙向通信的端點(diǎn),這些進(jìn)程在通信前各自建立一個(gè)Socket,并通過(guò)對(duì)Socket的讀/寫(xiě)操作實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。Linux提供3種類(lèi)型的套接字:流式套接字、數(shù)據(jù)報(bào)套接字、原始報(bào)套接字。電子郵件收發(fā)使用的是客戶(hù)端與服務(wù)器的通信模型。套接字編程均采用客戶(hù)端/服務(wù)器的協(xié)作模式,即由客戶(hù)進(jìn)程向服務(wù)器進(jìn)程發(fā)出請(qǐng)求,服務(wù)器進(jìn)程執(zhí)行被請(qǐng)求的任務(wù)并將響應(yīng)結(jié)果返回給客戶(hù)進(jìn)程。本程序使用SSL安全套接層協(xié)議。SSL(Secure
48、 Sockets Layer HYPERLINK /view/525499.htm安全套接層),及其繼任者HYPERLINK /view/831898.htm傳輸層安全(Transport Layer Security,TLS)是為HYPERLINK /view/538641.htm網(wǎng)絡(luò)通信提供安全及HYPERLINK /view/702953.htm數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在HYPERLINK /view/239605.htm傳輸層對(duì)網(wǎng)絡(luò)連接進(jìn)行加密。SSL協(xié)議位于HYPERLINK /view/7649.htmTCP/IP協(xié)議與各種HYPERLINK /view/23961
49、9.htm應(yīng)用層協(xié)議之間,為HYPERLINK /view/1474554.htm數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的HYPERLINK /view/441895.htm傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供HYPERLINK /view/262940.htm數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 SSLHYPERLINK /view/1712962.htm握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行HYPERLINK /view
50、/1014826.htm身份認(rèn)證、協(xié)商HYPERLINK /view/155969.htm加密算法、交換加密HYPERLINK /view/934.htm密鑰等。SSL協(xié)議所提供的服務(wù)有:1)認(rèn)證用戶(hù)和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的HYPERLINK /view/285153.htm客戶(hù)機(jī)和HYPERLINK /view/899.htm服務(wù)器;2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??;3)維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過(guò)程中不被改變。4.2.2 SSL協(xié)議環(huán)境搭建本程序使用openssl密碼庫(kù)。OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的HYPERLINK /view/8790.htm密
51、碼算法、常用的HYPERLINK /view/934.htm密鑰和證書(shū)封裝管理功能及HYPERLINK /view/16147.htmSSL協(xié)議,并提供豐富的HYPERLINK /view/330120.htm應(yīng)用程序供測(cè)試或其它目的使用。OpenSSL采用C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,這使得OpenSSL具有優(yōu)秀的HYPERLINK /view/469855.htm跨平臺(tái)性能,這對(duì)于廣大技術(shù)人員來(lái)說(shuō)是一件非常美妙的事情,可以在不同的平臺(tái)使用同樣熟悉的東西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平臺(tái),這使得OpenSSL具有廣泛的適用性。但習(xí)慣C語(yǔ)言總比使用C+重新寫(xiě)一個(gè)
52、跟OpenSSL相同功能的HYPERLINK /view/600107.htm軟件包輕松不少?;竟δ躉penSSL整個(gè)HYPERLINK /view/37.htm軟件包大概可以分成三個(gè)主要的功能部分:SSL協(xié)議庫(kù)、HYPERLINK /view/330120.htm應(yīng)用程序以及HYPERLINK /view/8790.htm密碼算法庫(kù)。OpenSSL的目錄結(jié)構(gòu)自然也是圍繞這三個(gè)功能部分進(jìn)行規(guī)劃的。作為一個(gè)基于密碼學(xué)的安全開(kāi)發(fā)包,OpenSSL提供的功能相當(dāng)強(qiáng)大和全面,囊括了主要的HYPERLINK /view/8790.htm密碼算法、常用的HYPERLINK /view/934.htm密鑰
53、和證書(shū)封裝管理功能以及SSL協(xié)議,并提供了豐富的HYPERLINK /view/330120.htm應(yīng)用程序供測(cè)試或其它目的使用。輔助功能HYPERLINK /view/1160082.htmBIO機(jī)制是OpenSSL提供的一種高層IO接口,該接口封裝了幾乎所有類(lèi)型的HYPERLINK /subview/1142749/5362454.htmIO接口,如內(nèi)存訪(fǎng)問(wèn)、文件訪(fǎng)問(wèn)以及Socket等。這使得代碼的重用性大幅度提高,OpenSSL提供API的復(fù)雜性也降低了很多。OpenSSL對(duì)于隨機(jī)數(shù)的生成和管理也提供了一整套的解決方法和支持API函數(shù)。隨機(jī)數(shù)的好壞是決定一個(gè)HYPERLINK /view
54、/934.htm密鑰是否安全的重要前提。OpenSSL還提供了其它的一些輔助功能,如從口令生成HYPERLINK /view/934.htm密鑰的API,證書(shū)簽發(fā)和管理中的配置文件機(jī)制等等。如果你有足夠的耐心,將會(huì)在深入使用OpenSSL的過(guò)程慢慢發(fā)現(xiàn)很多這樣的小功能,讓你不斷有新的驚喜。功能OpenSSL的HYPERLINK /view/330120.htm應(yīng)用程序已經(jīng)成為了OpenSSL重要的一個(gè)組成部分,其重要性恐怕是OpenSSL的開(kāi)發(fā)者開(kāi)始沒(méi)有想到的。如OpenCA,就是完全使用OpenSSL的應(yīng)用程序?qū)崿F(xiàn)的。OpenSSL的應(yīng)用程序是基于OpenSSL的HYPERLINK /vie
55、w/8790.htm密碼算法庫(kù)和SSL協(xié)議庫(kù)寫(xiě)成的,所以也是一些非常好的OpenSSL的API使用范例,讀懂所有這些范例,你對(duì)OpenSSL的API使用了解就比較全面了,當(dāng)然,這也是一項(xiàng)鍛煉你的意志力的工作。OpenSSL的應(yīng)用程序提供了相對(duì)全面的功能,在相當(dāng)多的人看來(lái),OpenSSL已經(jīng)為自己做好了一切,不需要再做更多的開(kāi)發(fā)工作了,所以,他們也把這些應(yīng)用程序成為OpenSSL的指令。OpenSSL的應(yīng)用程序主要包括HYPERLINK /view/934.htm密鑰生成、證書(shū)管理、格式轉(zhuǎn)換、HYPERLINK /view/696431.htm數(shù)據(jù)加密和簽名、SSL測(cè)試以及其它輔助配置功能。機(jī)制
56、HYPERLINK /view/415282.htmEngine機(jī)制 Engine機(jī)制的出現(xiàn)是在OpenSSL的0.9.6版的事情,開(kāi)始的時(shí)候是將普通版本跟支持Engine的版本分開(kāi)的,到了OpenSSL的0.9.7版,Engine機(jī)制集成到了OpenSSL的內(nèi)核中,成為了OpenSSL不可缺少的一部分。 Engine機(jī)制目的是為了使OpenSSL能夠透明地使用第三方提供的HYPERLINK /view/602315.htm軟件加密庫(kù)或者HYPERLINK /view/602316.htm硬件加密設(shè)備進(jìn)行加密。OpenSSL的Engine機(jī)制成功地達(dá)到了這個(gè)目的,這使得OpenSSL已經(jīng)不僅僅
57、使一個(gè)加密庫(kù),而是提供了一個(gè)通用地加密接口,能夠與絕大部分加密庫(kù)或者加密設(shè)備協(xié)調(diào)工作。當(dāng)然,要使特定加密庫(kù)或加密設(shè)備OpenSSL協(xié)調(diào)工作,需要寫(xiě)少量的接口代碼,但是這樣的工作量并不大,雖然還是需要一點(diǎn)密碼學(xué)的知識(shí)。Engine機(jī)制的功能跟HYPERLINK /view/4821.htmWindows提供的CSP功能目標(biāo)是基本相同的。包括:CryptoSwift、HYPERLINK /view/4511830.htmnCipher、Atalla、Nuron、UBSEC、Aep、SureWare以及IBM 4758 CCA的HYPERLINK /view/602316.htm硬件加密設(shè)備。當(dāng)然,
58、所有上述Engine接口支持不一定很全面,比如,可能支持其中一兩種HYPERLINK /view/1145160.htm公開(kāi)密鑰算法。Win32 OpenSSL安裝項(xiàng)目是致力于提供一個(gè)簡(jiǎn)單的安裝OpenSSL。很容易通過(guò)簡(jiǎn)單的設(shè)置和使用方便,有效的安裝程序。不需要編譯或跳過(guò)任何步驟,只需點(diǎn)擊幾次安裝,讓你做真正的工作。下載完成后無(wú)需編譯,直接將bin目錄下的一些.dll文件復(fù)制在Qt目錄的bin目錄下即可。圖4- SEQ 圖4- * ARABIC 2 OpenSSL 文件復(fù)制4.3 網(wǎng)絡(luò)應(yīng)用層編程為了交付郵件,電子郵件處理系統(tǒng)必須使用唯一的編址系統(tǒng)。因特網(wǎng)的郵件地址包括兩個(gè)部分:本地部分和域名
59、,并且用符號(hào)分隔開(kāi)。本地部分定義了一個(gè)特殊文件的名字,叫做用戶(hù)郵箱。在用戶(hù)郵箱中存儲(chǔ)了所有收到的用戶(hù)郵件,以便用戶(hù)代理進(jìn)行讀取。地址的第二部分是域名,一個(gè)組織通常選擇一個(gè)或多個(gè)主機(jī)來(lái)接收和發(fā)送電子郵件,這些主機(jī)通常叫做郵件服務(wù)器或郵件交換器(Mail Exchanger)。指派給每一個(gè)郵件交換器的域名或者來(lái)自DNS數(shù)據(jù)庫(kù),或者是一個(gè)邏輯名字(例如:該組織的名字)。4.3.1 郵件的發(fā)送處理(1)簡(jiǎn)單郵件傳送協(xié)議(SMTP)SMTP(Simple Mail Transfer Protocol)即HYPERLINK /view/576460.htm簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳
60、送HYPERLINK /view/172138.htm郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。HYPERLINK /view/21931.htmSMTP協(xié)議屬于HYPERLINK /view/7649.htmTCP/IP協(xié)議族,它幫助每臺(tái)HYPERLINK /view/3314.htm計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。通過(guò)SMTP協(xié)議所指定的HYPERLINK /view/899.htm服務(wù)器,就可以把E-mail寄到收信人的服務(wù)器上了,整個(gè)過(guò)程只要幾分鐘。SMTPHYPERLINK /view/899.htm服務(wù)器則是遵循SMTP協(xié)議的發(fā)送HYPERLINK /view/54241.h
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 展會(huì)宣傳推廣合同(2篇)
- 小賣(mài)鋪?zhàn)赓U合同(2篇)
- 2025年度建筑密封硅酮膠招標(biāo)采購(gòu)合同3篇
- 二零二五年度智慧城市物聯(lián)網(wǎng)設(shè)備采購(gòu)合同2篇
- 二零二五版果園果樹(shù)種植技術(shù)指導(dǎo)與承包合同3篇
- 2024版短期貸款合同范例3篇
- 二零二五年度消防工程監(jiān)理合同2篇
- 二零二五年度建筑工程項(xiàng)目招投標(biāo)與合同履約擔(dān)保服務(wù)合同3篇
- 二零二五版股權(quán)代持糾紛調(diào)解與風(fēng)險(xiǎn)防范合同5篇
- 二零二五年度不動(dòng)產(chǎn)權(quán)屬轉(zhuǎn)移擔(dān)保合同3篇
- 無(wú)人機(jī)航拍技術(shù)教案(完整版)
- 人教PEP版(2024)三年級(jí)上冊(cè)英語(yǔ)Unit 4《Plants around us》單元作業(yè)設(shè)計(jì)
- 《保密法》培訓(xùn)課件
- 醫(yī)院項(xiàng)目竣工驗(yàn)收和工程收尾階段的管理措施專(zhuān)項(xiàng)方案
- 2024年涉密人員考試試題庫(kù)保密基本知識(shí)試題附答案(考試直接用)
- 2024年桂林中考物理試卷
- DL∕T 5362-2018 水工瀝青混凝土試驗(yàn)規(guī)程
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- DL-T5054-2016火力發(fā)電廠(chǎng)汽水管道設(shè)計(jì)規(guī)范
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 家用電器可靠性與壽命預(yù)測(cè)研究
評(píng)論
0/150
提交評(píng)論