精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于嵌入式操作系統和開發工具實現電子郵件系統的設計

電子設計 ? 來源:微計算機信息 ? 作者:臧佳鋒,戴月明 ? 2020-09-23 17:24 ? 次閱讀

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

本嵌入式電子郵件系統,即是以Windows CE為開發平臺,結合Embedded Visual Basic 3.0開發工具設計實現的。最后采用Microsoft POCKET PC2002 for Windows SDK工具完成系統的測試。

1 移動設備郵件系統的工作原理

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

收發電子郵件依靠一套標準的會話協議,其中最為著名現在最常用的有:SMTP協議,該協議規定了與SMTP服務器進行對話的一系列命令與過程標準;POP3協議,該協議規定了與POP3服務器進行對話的一系列命令與過程標準。還有IMAP4協議,類似POP3的郵件接收協議。

1.1 SMTP協議

SMTP(Simple Mail Transfer Protocol)又叫做簡單郵件傳輸協議。它主要對如何將電子郵件從發送方地址傳送到接收方,也即是對傳輸的規則做了規定。SMTP協議的通信模型并不復雜,主要工作集中在發送SMTP和接收SMTP上:首先針對用戶發出的郵件請求,由發送SMTP建立一條連接到接收SMTP的雙工通訊鏈路,發送SMTP負責向接收SMTP發送SMTP命令,而接收SMTP則負責接收并反饋應答。可大致用下頁的SMTP通訊模型示意圖來表示:

基于嵌入式操作系統和開發工具實現電子郵件系統的設計

圖 1 SMTP 通訊模型示意圖

1.2 POP3協議

POP3(Post Office Protocol Version 3)是整個電子郵件系統的基本協議之一。POP3適用于C/S結構的脫機模型的電子郵件協議。 初始時,服務器通過偵聽TCP端口110開始POP3服務,當客戶主機需要使用服務時,它將與服務器主機建立TCP連接。當連接建立后,POP3發送確認消息,客戶和POP3服務器相互(分別)交換命令和響應。這一過程一直要持續到連接終止。

2 系統設計

該郵件系統由兩個客戶端程序組成,SMTP MAILER實現郵件和附件的發送,POP3 MAIL CHECKER用于登陸郵件服務器接受原始的郵件信息

2.1 郵件發送端設計與實現

2.1.1發送端工作流程

下圖是郵件發送流程圖

2.1.2具體實現

發送郵件的功能主要由eMbedded Visual Basic下的WINSOCK控件實現WINSOCK即Windows Socket,是微軟公司對Socket編程接口的集成。WINSOCK使用IP協議,同時支持TCP與UDP協議,在收發郵件這類基本網絡數據通信的前提下,WINSOCK控件是最好的選擇。

以A—H表示郵件發送的各部分設計:

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

Wsock.RemotePort = ServerPort 設定默認的端口。

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

構造郵件標題 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

這個典型的郵件標題包含了:發件人,發件日期,收件人,主題以及發送郵件的程序名稱。

C 當郵件程序連上服務器后,進如下一步打開郵件對話,利用WINSOCK控件發送對話信息:Wsock.SendData “HELO” & “ ” & Wsock.LocalHostName & vbCrLf

如果SMTP服務器沒有返回“250” 應答碼,則提示“Unable to establish transaction”。

D 由于現在的郵件服務器多采用ESMTP協議,因此需要客戶端程序發送用戶名與密碼等認證信息,故在打開對話過后便進入“Authentication“過程,:

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

在這里調用了自編的Encode函數并發送了經過BASE64編碼的用戶名與密碼信息。

E 接著是發送發送方與接受方的地址:

Wsock.SendData “MAIL FROM:” & “ ” & strFromMail & vbCrLf ‘發送方

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

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

Wsock.SendData “DATA” & vbCrLf ‘發送消息體

Wsock.SendData mData & vbCrLf ‘發送郵件標題

Wsock.SendData strContent & vbCrLf ‘發送正文

Wsock.SendData “。” & vbCrLf ‘發送結束符

G 在發送郵件時做了附件的判斷:

If Combo1.List 》 0 Then 如果附件列表非空則轉入MIME郵件的構造。MIME郵件的標題部分與RFC822相同,但要擴充一些內容

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

這里附件也通過編碼加入了郵件中。

H 最后結束郵件對話,返回信息:

Wsock.SendData “QUIT” & vbCrLf

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

2.2 郵件接受端的設計與實現

2.2.1 接收端工作流程

圖3 接收端工作流程

2.2.2 功能實現

POP3的通信與SMTP一樣,也可以通過Winsock來實現。該POP3郵件程序的過程如同POP3對話一樣。POP3服務器的應答要比SMTP簡單許多,其操作的應答狀態碼只有兩個“+OK”表示成功,“+ERR”表示失敗。具體細節不再贅述。

3 軟件模塊功能測試

為了評估電子郵件系統的兩個客戶端程序的實際可用性,必須對其系統的各個模塊進行測試。本測試所采用的是微軟開發的POCKET PC2002 for Windows SDK程序包。

3.1 郵件發送客戶端的測試

為了測試郵件發送系統的功效,可在已配置網絡的模擬器上載入郵件發送程序,使其工作在虛擬機的操作系統中。

配置好SMTP服務器資料與ESMTP所需的認證信息后,發送一封簡單的RFC822電子郵件到對方信箱中,成功發送。同樣的方式,測試發送MIME郵件,得到如下測試結果:

圖4 發送端測試結果

3.2 郵件接收客戶端的測試

同郵件發送客戶端一樣,采用同樣的網絡設置,載入程序,登入網絡。先選擇POP3的郵件服務器地址,設定用戶信息與密碼,確認后獲得基礎的認證,并傳回郵箱中信件的數量與大小統計。經測試收到了預期的效果。

以上兩個程序的測試都是在網絡環境下進行的,如果網絡連接不正常或其他原因導致郵件的收發不成功,在程序設計的出錯處理中已經有所考慮。

4 結語

與網絡結合已成為所有信息產品的發展趨勢,隨著PDA等嵌入式系統的日益普及以及無線互聯技術(802.11B)的發展,利用PDA實現掌上電腦與臺式機間相互傳遞電子郵件,已經成為一種結合時尚和便利于一身的通信手段。作者設計實現的基于Windows CE的嵌入式電子郵件系統,為實現移動設備之間郵件傳輸作了良好的嘗試。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5068

    文章

    19021

    瀏覽量

    303340
  • 服務器
    +關注

    關注

    12

    文章

    9024

    瀏覽量

    85186
  • 操作系統
    +關注

    關注

    37

    文章

    6742

    瀏覽量

    123192
收藏 人收藏

    評論

    相關推薦

    主流嵌入式操作系統有哪些?

    、Android、FreeRTOS。WINDOWS CE是微軟開發的一個開放的、可升級的32位嵌入式操作系統,是基于掌上型電腦類的電子設備操作系統
    發表于 07-10 19:02

    求一款基于Windows CE的嵌入式電子郵件系統設計

    移動設備郵件系統的工作原理基于Windows CE的嵌入式電子郵件系統設計
    發表于 04-25 07:04

    嵌入式Linux操作系統的使用

    這是第一次接觸嵌入式設計課程,課程設計內容目標如下:1、了解嵌入式技術;2、掌握嵌入式Linux操作系統的使用;(命令)3、掌握嵌入式Lin
    發表于 11-08 06:43

    嵌入式系統應用開發工具的主要目的是什么

    嵌入式系統應用開發工具的主要目的:提高開發質量,縮短開發周期,降低開發成本。按照軟硬件技術的復
    發表于 11-09 08:44

    嵌入式linux、arm嵌入式操作系統的相關資料分享

    開發工具鏈異常處理linux內核裁剪與移植GCC命令基本用法系統調用與中斷進程間通信接口中斷驅動程序引導程序C語言與匯編語言嵌入式操作系統嵌入式
    發表于 12-27 07:35

    嵌入式操作系統UCOSII移植筆記

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

    基于數字簽名的安全電子郵件系統的研究

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

    基于Windows CE的嵌入式電子郵件系統設計與實現

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

    實時操作系統用于嵌入式應用系統的設計

    概述了嵌入式系統開發工具實時操作系統的特點和核心內容;分析了在利用實時操作系統進行嵌入式
    發表于 10-10 15:23 ?42次下載
    實時<b class='flag-5'>操作系統</b>用于<b class='flag-5'>嵌入式</b>應用<b class='flag-5'>系統</b>的設計

    基于Windows CE的嵌入式電子郵件系統設計與實現

    本文分析了SMTP(ESMTP)/POP3協議MIME和RFC822的郵件實現機理以Windows CE為開發平臺采用eM bedded Visual Tools
    發表于 04-18 11:28 ?5次下載

    嵌入式操作系統FreeRTOS的原理實現

    嵌入式操作系統FreeRTOS的原理實現(嵌入式開發工具使用實驗報告)-嵌入式操作系統FreeR
    發表于 07-30 12:03 ?31次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>FreeRTOS的原理<b class='flag-5'>實現</b>

    嵌入式Linux_C語言開發工具

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

    課堂筆記之嵌入式Linux操作系統

    嵌入式操作系統開發工具系統應用開發(&GUI)、系統移植、驅動、內核。4、所具備的知識體系
    發表于 11-02 09:51 ?15次下載
    課堂筆記之<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>操作系統</b>

    慕課嵌入式系統(第六章.嵌入式開發工具)

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

    嵌入式操作系統

    2.2 實時操作系統的評價指標三、基于Linux的嵌入式操作系統3.1 ARMLinux簡介3.2 uCLinux簡介四、嵌入式操作系統設計
    發表于 11-03 18:36 ?46次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>