一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于嵌入式操作系統(tǒng)和開發(fā)工具實(shí)現(xiàn)電子郵件系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:微計(jì)算機(jī)信息 ? 作者:臧佳鋒,戴月明 ? 2020-09-23 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從1996年的Windows CE 1.0 到最新的Windows CE.Net, WINCE 已有8年歷史。Windows CE設(shè)計(jì)簡(jiǎn)單靈活,可在各種小型嵌入式系統(tǒng)中使用,且其功能強(qiáng)大,在最新一代的高性能工業(yè)和家用設(shè)備中也得到了充分使用。Microsoft eMbedded Visual Tools是微軟公司專為WINCE設(shè)備開發(fā)的一套開發(fā)環(huán)境,功能強(qiáng)大,開發(fā)方便快捷。二者的結(jié)合為實(shí)現(xiàn)嵌入式電子郵件系統(tǒng)提供了絕佳的開發(fā)環(huán)境。

本嵌入式電子郵件系統(tǒng),即是以Windows CE為開發(fā)平臺(tái),結(jié)合Embedded Visual Basic 3.0開發(fā)工具設(shè)計(jì)實(shí)現(xiàn)的。最后采用Microsoft POCKET PC2002 for Windows SDK工具完成系統(tǒng)的測(cè)試。

1 移動(dòng)設(shè)備郵件系統(tǒng)的工作原理

目前網(wǎng)絡(luò)上的電子郵件傳送有點(diǎn)如同日常信件中的普通信件發(fā)送,日常生活中人們首先將郵件交給郵局,郵局再按照信封上的地址投遞,最后將郵件發(fā)到收信的人信箱里,收信人只要憑借他的信箱鑰匙就可以拿到信件。同樣的一封電子郵件從用戶手中發(fā)出,首先有一個(gè)程序把這封郵件發(fā)送到SMTP服務(wù)器(發(fā)送郵件的服務(wù)器)上,再由服務(wù)器負(fù)責(zé)將郵件傳遞到目的信箱。然后需要一個(gè)程序接受信箱的郵件,當(dāng)然也不是只要隨便有一個(gè)程序就可以的,還需要帳號(hào)(如同收信人姓名)與口令(如同信箱鑰匙)。所以很明顯,發(fā)送郵件至少需要4個(gè)處理不同任務(wù),有不同功能的程序:發(fā)送郵件到服務(wù)器的程序,即發(fā)送郵件客戶端程序;在網(wǎng)絡(luò)上傳送郵件到對(duì)方信箱的程序,即SMTP服務(wù)器程序;接受郵件并存貯給用戶提取的服務(wù)器程序,即POP3服務(wù)器程序;從POP3服務(wù)器上收取郵件的程序,即接受郵件客戶端程序。

收發(fā)電子郵件依靠一套標(biāo)準(zhǔn)的會(huì)話協(xié)議,其中最為著名現(xiàn)在最常用的有:SMTP協(xié)議,該協(xié)議規(guī)定了與SMTP服務(wù)器進(jìn)行對(duì)話的一系列命令與過(guò)程標(biāo)準(zhǔn);POP3協(xié)議,該協(xié)議規(guī)定了與POP3服務(wù)器進(jìn)行對(duì)話的一系列命令與過(guò)程標(biāo)準(zhǔn)。還有IMAP4協(xié)議,類似POP3的郵件接收協(xié)議。

1.1 SMTP協(xié)議

SMTP(Simple Mail Transfer Protocol)又叫做簡(jiǎn)單郵件傳輸協(xié)議。它主要對(duì)如何將電子郵件從發(fā)送方地址傳送到接收方,也即是對(duì)傳輸?shù)囊?guī)則做了規(guī)定。SMTP協(xié)議的通信模型并不復(fù)雜,主要工作集中在發(fā)送SMTP和接收SMTP上:首先針對(duì)用戶發(fā)出的郵件請(qǐng)求,由發(fā)送SMTP建立一條連接到接收SMTP的雙工通訊鏈路,發(fā)送SMTP負(fù)責(zé)向接收SMTP發(fā)送SMTP命令,而接收SMTP則負(fù)責(zé)接收并反饋應(yīng)答??纱笾掠孟马?yè)的SMTP通訊模型示意圖來(lái)表示:

基于嵌入式操作系統(tǒng)和開發(fā)工具實(shí)現(xiàn)電子郵件系統(tǒng)的設(shè)計(jì)

圖 1 SMTP 通訊模型示意圖

1.2 POP3協(xié)議

POP3(Post Office Protocol Version 3)是整個(gè)電子郵件系統(tǒng)的基本協(xié)議之一。POP3適用于C/S結(jié)構(gòu)的脫機(jī)模型的電子郵件協(xié)議。 初始時(shí),服務(wù)器通過(guò)偵聽TCP端口110開始POP3服務(wù),當(dāng)客戶主機(jī)需要使用服務(wù)時(shí),它將與服務(wù)器主機(jī)建立TCP連接。當(dāng)連接建立后,POP3發(fā)送確認(rèn)消息,客戶和POP3服務(wù)器相互(分別)交換命令和響應(yīng)。這一過(guò)程一直要持續(xù)到連接終止。

2 系統(tǒng)設(shè)計(jì)

該郵件系統(tǒng)由兩個(gè)客戶端程序組成,SMTP MAILER實(shí)現(xiàn)郵件和附件的發(fā)送,POP3 MAIL CHECKER用于登陸郵件服務(wù)器接受原始的郵件信息。

2.1 郵件發(fā)送端設(shè)計(jì)與實(shí)現(xiàn)

2.1.1發(fā)送端工作流程

下圖是郵件發(fā)送流程圖

2.1.2具體實(shí)現(xiàn)

發(fā)送郵件的功能主要由eMbedded Visual Basic下的WINSOCK控件實(shí)現(xiàn)WINSOCK即Windows Socket,是微軟公司對(duì)Socket編程接口的集成。WINSOCK使用IP協(xié)議,同時(shí)支持TCP與UDP協(xié)議,在收發(fā)郵件這類基本網(wǎng)絡(luò)數(shù)據(jù)通信的前提下,WINSOCK控件是最好的選擇。

以A—H表示郵件發(fā)送的各部分設(shè)計(jì):

A 在這個(gè)郵件程序中,首先要連接SMTP的郵件服務(wù)因此在cmdSend_Click()事件中最先實(shí)施的是Wsock.RemoteHost = ServerIp連接設(shè)定的服務(wù)器主機(jī)

Wsock.RemotePort = ServerPort 設(shè)定默認(rèn)的端口。

B 然后開始構(gòu)造郵件格式,定義字符串m_Date為發(fā)送日期,字符串mData為郵件頭。語(yǔ)句m_Date = FormatDateTime(Date, [vbShortDate]) & “, ” & FormatDateTime(Date, [vbLongDate]) & “ ” & FormatDateTime(Time, [vbLongTime]) & “” & “ -0600” 定義了郵件的發(fā)送日期。

構(gòu)造郵件標(biāo)題 mData = “From:” & Chr(32) & strSendname & vbCrLf & _

“Date:” & Chr(32) & m_Date & vbCrLf & _

“X-Mailer: Harold Smtp Mailer V1.0” & vbCrLf & _

“To:” & Chr(32) & strReceiveName & vbCrLf & _

Subject:” & Chr(32) & strSubject & vbCrLf

這個(gè)典型的郵件標(biāo)題包含了:發(fā)件人,發(fā)件日期,收件人,主題以及發(fā)送郵件的程序名稱。

C 當(dāng)郵件程序連上服務(wù)器后,進(jìn)如下一步打開郵件對(duì)話,利用WINSOCK控件發(fā)送對(duì)話信息:Wsock.SendData “HELO” & “ ” & Wsock.LocalHostName & vbCrLf

如果SMTP服務(wù)器沒(méi)有返回“250” 應(yīng)答碼,則提示“Unable to establish transaction”。

D 由于現(xiàn)在的郵件服務(wù)器多采用ESMTP協(xié)議,因此需要客戶端程序發(fā)送用戶名與密碼等認(rèn)證信息,故在打開對(duì)話過(guò)后便進(jìn)入“Authentication“過(guò)程,:

Wsock.SendData “AUTH LOGIN” & vbCrLf

If Not WaitForResponse(“334”, 10) Then

txtMsg.Text = “Unable to Connect with ESMTP server.。..。.”

Wsock.SendData Encode(User) & vbCrLf

Wsock.SendData Encode(Pass) & vbCrLf

在這里調(diào)用了自編的Encode函數(shù)并發(fā)送了經(jīng)過(guò)BASE64編碼的用戶名與密碼信息。

E 接著是發(fā)送發(fā)送方與接受方的地址:

Wsock.SendData “MAIL FROM:” & “ ” & strFromMail & vbCrLf ‘發(fā)送方

Wsock.SendData “RCPT TO:” & “ ” & strToMail & vbCrLf ‘接受方

F 下一步是發(fā)送消息體(針對(duì)不含附件的RFC822郵件):

Wsock.SendData “DATA” & vbCrLf ‘發(fā)送消息體

Wsock.SendData mData & vbCrLf ‘發(fā)送郵件標(biāo)題

Wsock.SendData strContent & vbCrLf ‘發(fā)送正文

Wsock.SendData “?!?& vbCrLf ‘發(fā)送結(jié)束符

G 在發(fā)送郵件時(shí)做了附件的判斷:

If Combo1.List 》 0 Then 如果附件列表非空則轉(zhuǎn)入MIME郵件的構(gòu)造。MIME郵件的標(biāo)題部分與RFC822相同,但要擴(kuò)充一些內(nèi)容

Wsock.SendData “MIME-Version:1.0” & vbCrLf

Wsock.SendData “Content-Type:multipart/mixed;” & vbCrLf

Wsock.SendData “ boundary = Unique-Boundary” & vbCrLf & vbCrLf

Wsock.SendData “[ Random garbage here ]” & vbCrLf & vbCrLf

Wsock.SendData vbCrLf & “--Unique-Boundary” & vbCrLf

Wsock.SendData “Content-type: text/plain;charset=US-ASCII” & vbCrLf & vbCrLf

Wsock.SendData strContent & vbCrLf & vbCrLf

Wsock.SendData “--Unique=Boundary” & vbCrLf

Wsock.SendData “Content-Type: multipart/parallel;boundary = Unique-Boundary-2” & vbCrLf & vbCrLf

Wsock.SendData “--Unique=Boundary -2” & vbCrLf

Wsock.SendData “Content-Type: application/octest-stream;” & vbCrLf

Wsock.SendData “name =” & strAttachname & vbCrLf

Wsock.SendData “Content-Transfer-Encoding:base64” & vbCrLf

Wsock.SendData “Content-Disposition:inline;” & vbCrLf

這里附件也通過(guò)編碼加入了郵件中。

H 最后結(jié)束郵件對(duì)話,返回信息:

Wsock.SendData “QUIT” & vbCrLf

txtMsg.Text = txtMsg.Text & “Mail send success!”

2.2 郵件接受端的設(shè)計(jì)與實(shí)現(xiàn)

2.2.1 接收端工作流程

圖3 接收端工作流程

2.2.2 功能實(shí)現(xiàn)

POP3的通信與SMTP一樣,也可以通過(guò)Winsock來(lái)實(shí)現(xiàn)。該P(yáng)OP3郵件程序的過(guò)程如同POP3對(duì)話一樣。POP3服務(wù)器的應(yīng)答要比SMTP簡(jiǎn)單許多,其操作的應(yīng)答狀態(tài)碼只有兩個(gè)“+OK”表示成功,“+ERR”表示失敗。具體細(xì)節(jié)不再贅述。

3 軟件模塊功能測(cè)試

為了評(píng)估電子郵件系統(tǒng)的兩個(gè)客戶端程序的實(shí)際可用性,必須對(duì)其系統(tǒng)的各個(gè)模塊進(jìn)行測(cè)試。本測(cè)試所采用的是微軟開發(fā)的POCKET PC2002 for Windows SDK程序包。

3.1 郵件發(fā)送客戶端的測(cè)試

為了測(cè)試郵件發(fā)送系統(tǒng)的功效,可在已配置網(wǎng)絡(luò)的模擬器上載入郵件發(fā)送程序,使其工作在虛擬機(jī)的操作系統(tǒng)中。

配置好SMTP服務(wù)器資料與ESMTP所需的認(rèn)證信息后,發(fā)送一封簡(jiǎn)單的RFC822電子郵件到對(duì)方信箱中,成功發(fā)送。同樣的方式,測(cè)試發(fā)送MIME郵件,得到如下測(cè)試結(jié)果:

圖4 發(fā)送端測(cè)試結(jié)果

3.2 郵件接收客戶端的測(cè)試

同郵件發(fā)送客戶端一樣,采用同樣的網(wǎng)絡(luò)設(shè)置,載入程序,登入網(wǎng)絡(luò)。先選擇POP3的郵件服務(wù)器地址,設(shè)定用戶信息與密碼,確認(rèn)后獲得基礎(chǔ)的認(rèn)證,并傳回郵箱中信件的數(shù)量與大小統(tǒng)計(jì)。經(jīng)測(cè)試收到了預(yù)期的效果。

以上兩個(gè)程序的測(cè)試都是在網(wǎng)絡(luò)環(huán)境下進(jìn)行的,如果網(wǎng)絡(luò)連接不正常或其他原因?qū)е锣]件的收發(fā)不成功,在程序設(shè)計(jì)的出錯(cuò)處理中已經(jīng)有所考慮。

4 結(jié)語(yǔ)

與網(wǎng)絡(luò)結(jié)合已成為所有信息產(chǎn)品的發(fā)展趨勢(shì),隨著PDA等嵌入式系統(tǒng)的日益普及以及無(wú)線互聯(lián)技術(shù)(802.11B)的發(fā)展,利用PDA實(shí)現(xiàn)掌上電腦與臺(tái)式機(jī)間相互傳遞電子郵件,已經(jīng)成為一種結(jié)合時(shí)尚和便利于一身的通信手段。作者設(shè)計(jì)實(shí)現(xiàn)的基于Windows CE的嵌入式電子郵件系統(tǒng),為實(shí)現(xiàn)移動(dòng)設(shè)備之間郵件傳輸作了良好的嘗試。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317640
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9795

    瀏覽量

    88001
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7152

    瀏覽量

    125599
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    主流嵌入式操作系統(tǒng)有哪些?

    、Android、FreeRTOS。WINDOWS CE是微軟開發(fā)的一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng)
    發(fā)表于 07-10 19:02

    求一款基于Windows CE的嵌入式電子郵件系統(tǒng)設(shè)計(jì)

    移動(dòng)設(shè)備郵件系統(tǒng)的工作原理基于Windows CE的嵌入式電子郵件系統(tǒng)設(shè)計(jì)
    發(fā)表于 04-25 07:04

    嵌入式Linux操作系統(tǒng)的使用

    這是第一次接觸嵌入式設(shè)計(jì)課程,課程設(shè)計(jì)內(nèi)容目標(biāo)如下:1、了解嵌入式技術(shù);2、掌握嵌入式Linux操作系統(tǒng)的使用;(命令)3、掌握嵌入式Lin
    發(fā)表于 11-08 06:43

    嵌入式系統(tǒng)應(yīng)用開發(fā)工具的主要目的是什么

    。嵌入式系統(tǒng)應(yīng)用開發(fā)工具的主要目的:提高開發(fā)質(zhì)量,縮短開發(fā)周期,降低開發(fā)成本。按照軟硬件技術(shù)的復(fù)
    發(fā)表于 11-09 08:44

    嵌入式linux、arm嵌入式操作系統(tǒng)的相關(guān)資料分享

    開發(fā)工具鏈異常處理linux內(nèi)核裁剪與移植GCC命令基本用法系統(tǒng)調(diào)用與中斷進(jìn)程間通信接口中斷驅(qū)動(dòng)程序引導(dǎo)程序C語(yǔ)言與匯編語(yǔ)言嵌入式操作系統(tǒng)嵌入式
    發(fā)表于 12-27 07:35

    嵌入式操作系統(tǒng)UCOSII移植筆記

    是STM32F103ZET6開發(fā)工具是Keil5 MDK為什么要進(jìn)行操作系統(tǒng)移植?一般的嵌入式程序在51上運(yùn)行的時(shí)候很少用到操作系統(tǒng),不過(guò)也有用的(很少不抬杠),只有對(duì)時(shí)間要求比較高的
    發(fā)表于 12-27 06:35

    基于數(shù)字簽名的安全電子郵件系統(tǒng)的研究

    本文以電子郵件系統(tǒng)為研究背景,在數(shù)字簽名技術(shù)的基礎(chǔ)上,提出了一種基于數(shù)字簽名技術(shù)的安全電子郵件系統(tǒng)的設(shè)計(jì)方案,并給出了發(fā)送電子郵件模塊和接收電子郵件模塊的詳細(xì)
    發(fā)表于 08-04 08:07 ?27次下載

    基于Windows CE的嵌入式電子郵件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    本文分析了SMTP(ESMTP)/POP3 協(xié)議,MIME 和RFC822 的郵件格式和實(shí)現(xiàn)機(jī)理,以Windows CE 為開發(fā)平臺(tái),采用eMbedded Visual Tools 開發(fā)工具
    發(fā)表于 08-13 09:43 ?20次下載

    實(shí)時(shí)操作系統(tǒng)用于嵌入式應(yīng)用系統(tǒng)的設(shè)計(jì)

    概述了嵌入式系統(tǒng)開發(fā)工具實(shí)時(shí)操作系統(tǒng)的特點(diǎn)和核心內(nèi)容;分析了在利用實(shí)時(shí)操作系統(tǒng)進(jìn)行嵌入式
    發(fā)表于 10-10 15:23 ?42次下載
    實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>用于<b class='flag-5'>嵌入式</b>應(yīng)用<b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于Windows CE的嵌入式電子郵件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    本文分析了SMTP(ESMTP)/POP3協(xié)議MIME和RFC822的郵件實(shí)現(xiàn)機(jī)理以Windows CE為開發(fā)平臺(tái)采用eM bedded Visual Tools
    發(fā)表于 04-18 11:28 ?5次下載

    嵌入式操作系統(tǒng)FreeRTOS的原理實(shí)現(xiàn)

    嵌入式操作系統(tǒng)FreeRTOS的原理實(shí)現(xiàn)(嵌入式開發(fā)工具使用實(shí)驗(yàn)報(bào)告)-嵌入式操作系統(tǒng)FreeR
    發(fā)表于 07-30 12:03 ?31次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>FreeRTOS的原理<b class='flag-5'>實(shí)現(xiàn)</b>

    嵌入式Linux_C語(yǔ)言開發(fā)工具

    C語(yǔ)言開發(fā)工具開發(fā)工具操作系統(tǒng)之間是相互促進(jìn)的、相互發(fā)展的,操作系統(tǒng)離不開軟件開發(fā)的支持,軟件開發(fā)工具
    發(fā)表于 11-01 16:57 ?13次下載
    <b class='flag-5'>嵌入式</b>Linux_C語(yǔ)言<b class='flag-5'>開發(fā)工具</b>

    課堂筆記之嵌入式Linux操作系統(tǒng)

    嵌入式操作系統(tǒng)、開發(fā)工具、系統(tǒng)應(yīng)用開發(fā)(&GUI)、系統(tǒng)移植、驅(qū)動(dòng)、內(nèi)核。4、所具備的知識(shí)體系
    發(fā)表于 11-02 09:51 ?15次下載
    課堂筆記之<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>操作系統(tǒng)</b>

    慕課嵌入式系統(tǒng)(第六章.嵌入式開發(fā)工具)

    慕課電子科技大學(xué).嵌入式系統(tǒng).第六章.嵌入式軟件系統(tǒng)概述.嵌入式開發(fā)工具0 目錄6
    發(fā)表于 11-03 12:21 ?10次下載
    慕課<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>(第六章.<b class='flag-5'>嵌入式開發(fā)工具</b>)

    嵌入式操作系統(tǒng)

    2.2 實(shí)時(shí)操作系統(tǒng)的評(píng)價(jià)指標(biāo)三、基于Linux的嵌入式操作系統(tǒng)3.1 ARMLinux簡(jiǎn)介3.2 uCLinux簡(jiǎn)介四、嵌入式操作系統(tǒng)設(shè)計(jì)
    發(fā)表于 11-03 18:36 ?46次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>