中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

基于Windows CE的嵌入式电子邮件系统设计与实现

时间:2007/1/8 10:04:00  作者:  来源:ic72  浏览人数:1381
 
 

      从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通讯模型示意图来表示:

ic72 嵌入系统
图 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发送端工作流程

      下图是邮件发送流程图

ic72 嵌入系统

      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  接收端工作流程

ic72 嵌入系统

图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邮件,得到如下测试结果:

ic72 嵌入系统
图4 发送端测试结果

      3.2 邮件接收客户端的测试

      同邮件发送客户端一样,采用同样的网络设置,载入程序,登入网络。先选择POP3的邮件服务器地址,设定用户信息与密码,确认后获得基础的认证,并传回邮箱中信件的数量与大小统计。经测试收到了预期的效果。

      以上两个程序的测试都是在网络环境下进行的,如果网络连接不正常或其他原因导致邮件的收发不成功,在程序设计的出错处理中已经有所考虑。

      4 结语

      与网络结合已成为所有信息产品的发展趋势,随着PDA等嵌入式系统的日益普及以及无线互联技术(802.11B)的发展,利用PDA实现掌上电脑与台式机间相互传递电子邮件,已经成为一种结合时尚和便利于一身的通信手段。作者设计实现的基于Windows CE的嵌入式电子邮件系统,为实现移动设备之间邮件传输作了良好的尝试。

 
【相关文章】
·基于Windows CE的嵌入式电子邮件系统设计与实现
·德州仪器开发套件为电池供电设备提供WLAN功能
·Altium Designer6.3让用户将设计移到下一代电子产品开发平台
·ARM推出新款嵌入式处理器Cortex-R4,采用90纳米技术
·多线程技术推动下一代嵌入式SoC发展
·平台SoC设计时代即将到来
·EasyARM2200的局域网现场数据采集器
·UC系列通用嵌入式软硬件平台
·VxWorks应用技巧两例
·AeroComm推出基于TI SoC的ZigBee收发器
·基于MPC8250的数字硬盘录像机设计
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9