当前位置:文档之家› Webmail邮件服务系统的设计与实现

Webmail邮件服务系统的设计与实现

2007年第4期福建电脑Webmail邮件服务系统的设计与实现陶欢华(苏州科技学院浙江苏州215011)【摘要】:Webmail邮件服务系统主要是基于网络收发邮件的系统,用户通过浏览器可以直接收发邮件,不需要对客户端计算机进行邮件服务器和个人邮箱的设置。

本论文给出了Webmail系统的设计思想、具体设计、PHP编码以及实现。

【关键词】:WebmailSMTPPOP3IMAP1.引言随着上网用户越来越多,上网速度越来越快,作为网络基础应用的电子邮件系统的应用越来越广泛,不管是使用免费的邮箱如hotmail.com,yahoo.com.cn,163.com,263.net,21cn.com,sina.com等、收费的个人邮箱、ISP提供的虚拟主机邮箱等都存在着种种问题。

邮件服务系统是信息沟通的桥梁,是因特网的重要组成部分。

自主设计开发邮件服务系统,对于各企事业单位以及各大高校来说具有非常重要的意义。

2.Webmail邮件服务系统的设计2.1Webmail邮件服务系统原理邮件服务器采用开放源代码的Linux系统。

Linux系统的特点之一是使软件模块化,对邮件系统功能进行的模块划分为分成三个模块:邮件分发代理(MDA);邮件传输代理(MTA);邮件用户代理(MUA)。

这三部分之间的界限并不十分明确,有时候一个程序模块可能既包含了MDA的功能同时又能实现MTA的功能,而另外一些时候又有可能是MTA和MDA的功能被组合在了一起。

Webmail就是使用者通过browser连到webserver,而由webserver上的程序负责作收信/发信的动作。

使用者直接通过browser作读信/写信等操作,信件其实并不存在于使用者的电脑上。

因此无论使用者用的是哪一部电脑,只要可以连上网络,都可以使用读到以前的和新收到的信件.另外一个好处是Webmail不容易因为读取含有病毒的档案而导致中毒,更不会发生个人邮件系统中毒后,寄送大量病毒信件给其他亲朋好友。

在发信方面,Webmail程序以SMTPprotocol和MailServer上的TransportAgent勾通,将信件经由MTA送往Inter-net。

而在信件的处理上则是通过POP3或是IMAP4server进行存取。

通过POP3/IMAP4server存取信件主要的优点是提供WebmailService的服务器和MailServer可以是不同的服务器。

因此在为已有的MailServer额外加上Webmail服务功能时,就不必担心会影响到原来的MailServer。

2.2Webmail的具体设计2.2.1系统功能需求模块图1系统功能需求模块图Webmail邮件服务系统能够完成以下任务:1)用户通过浏览器在Web界面上登录,输入个人帐号、密码,即时使用。

2)以Web方式阅读邮件,同时可对邮件一个、多个及整页删除、移动。

实现邮件的转发、回复、地址簿的加入,等等。

3)邮件的在线书写和发送,支持签名和附件功能。

4)具有文件夹的创建、重命名和删除等管理功能。

5)邮件检索功能,用户可选择查询条件,在单个或整个文件夹内查寻邮件。

6)系统提供个人和组的地址簿功能。

7)在配置信息里,用户可以管理自己的信箱。

2.2.2模块流程图本系统主要功能为收发邮件,接收邮件流程图、发送邮件流程图如图2、3所示。

3.webmail的实现3.1Webmail的实现邮件分为邮件信封(mailenvelope)和邮件内容(mailcontent),其中邮件信封只保留给MailServer,其他人看不到此信息。

邮件内容(mailcontent)包含1.邮件标头(header):有Re-ceived、MessageID、From、Subject、Date、To、Cc…等2.邮件主题(body):如有附件(attachedfile),也在此部分中。

邮件需要传输这些内容。

3.2传输(deliver)类包含的主要函数functionmail(¥message,¥stream=false)//准备传送的邮件functionwriteBody(¥message,¥stream,&¥length_raw,¥boundary='')//写总的邮件主题functionwriteBodyPart(¥message,¥stream,&¥length)//写邮件主题各个部分functionwriteToStream(¥stream,¥data)//写入字节流functionprepareMIME_Header(¥message,¥boundary)//准备MIME头信息functionprepareRFC822_Header(¥rfc822_header,¥re-ply_rfc822_header,&¥raw_length)//准备RFC822头信息3.3关键函数functionimaplogin(¥username,¥password,¥imap_server_ad-dress,¥imap_port,¥hide)//登录IMAP服务器functionimap_get_delimiter(¥imap_stream=false)//返回邮箱间的分隔符:INBOX/Test,INBOX.Testfunctionimap_run_command_list(¥imap_stream,¥query,¥handle_errors,&¥response,&¥message,¥unique_id=false)//发送命令以及接收命令的返回结果3.4传输安全图3发送邮件流程图图2接收邮件流程图本系统采用加密的Cookies认证技术,提高了认证系统的效率及安全性。

通过session记录用户的有关信(下转第183页)1602007年第4期福建电脑息,session中注册的变量可作为全局变量使用。

Cookie存在于客户端存有用户的SessionID也即Session号码,当用户浏览器请求服务器时,把SessionID也一起送到服务器,这样Server可识别用户,保证系统的安全性。

3.5编程工具与调试工具1.编程工具本系统的开发采用的编程工具为PHP4,任何的文本编辑器都可以进行代码的编写。

2.调试工具PHP语言最明显的特点是程序不容易调试,我们采用ZendStudio工具跟踪调试PHP程序的运行情况。

ZendStudio工具分为两部分如下,客户端:ZendStudio-3_0_0a安装在客户端跟踪调试)服务器端:ZendStudioServer-3.0.0-Linux_glibc21-i386(安装在邮件服务器端)。

4.总结Webmail邮件服务系统是-种利用电子手段提供信息交换的通信方式。

它是全球多种网络上使用最普遍的一项服务。

这种非交互式的通信,加速了信息的交流及数据传送,它是-个简易、快速的方法,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。

参考文献:1.刘善平,刘文峰等;Linux内核2.4版源代码分析大全;2002.1;机械工业出版社;北京2.梁如军;Redhat7.0安装配置与管理;2001.8;清华大学出版社;北京3.任永铮;LinuxC程序员指南;2000.9;国防工业出版社;北京4.[美]RichardBlum;开放源码邮件系统安全;2002;人民邮电出版社;北京OS-II的嵌入式开发平台。

在该平台中,ARMSDT2.5提供了良好的开发环境[1]。

利用该环境对本系统的开发过程为:运行该环境进APM窗口->新建工程文件EGWM.apj->配置项目工具->编辑源程序->编译、汇编、连接->目标文件->仿真、程序调试->下载到开发板->开启开发板自动运行等。

4.2软件设计思路在EGWM的设计中,整个软件采用模块化设计,这样可以提高其可维护性和可重用性。

本系统主要可以划分为以下几个工作模块:系统初始化模块、网络登录模块、服务器连接模块、通信机连接模块、网络状态检测模块。

各个模块的关系如图3所示:4.3系统流程图图4是系统实现时的程序流程图.流程图中的Modem指的ARM7微处理器S3C44B0X与通信模块所构成的嵌入式系统---EGWM.图4系统程序流程图4.4软件结构和实现设计在程序的编写中,程序中的所有代码都是采用C语言编写,兼用汇编语言,软件结构采用分层的结构,从底层到上层分别为:串口驱动层、GPRS模块驱动层、PPP协议层、IP协议层、UDP协议层与应用层。

在分层结构,底层函数的任务是为上层函数提供服务,最终可以完成数据传送的任务,在进行EGWM的设计时,各层的主要函数为下表1所示:编程实现,该部分对上面讨论的软件分层结构中各个层次的主要函数进行编程实现。

首先是对串行口驱动层进行编程,主要有:打开串口Open-Comm()、关闭串口CloseComm()、读串口数据ReadComm()、写串口数据WriteComm()等函数。

其次是在这些函数的基础上进行GPRS模块驱动层函数的编写。

主要有:初始化GPRS模块函数GPRSInit()、拨号函数GPRSDial()、断开连接函数GPRSHangup()、检测是否处于在线状态函数GPRSOnline()等函数。

最后,在上面这些底层驱动函数的基础上,上层协议的编写就相对简单,如果底层硬件做出修改、删除或添加等变化,只要对底层的驱动函数进行修改,不影响上层函数的功能,即上层各个函数的代码不用改变。

因此,其它各层如PPP协议层、IP协议层、UDP协议层与应用层协议各个函数的实现根据下层提供的服务,就很容易实现。

5.结束语本文在对ARM7微处理器和?C/OS-II嵌入式操作系统进行详细研究的基础上,给出了EGWM的实现方案。

讨论了EGWM所使用的相关通信协议,对EGWM硬件系统和软件系统分别进行了讨论,给出了硬件体系结构、软件设计的思路、软件的层次结构及主要函数的实现等。

随着信息技术的进步,人们对各个领域的需求越来越多,基于ARM与?C/OS-II的嵌入式系统的应用领域将占据一定的位置和地位。

在未来的信息社会,嵌入式系统与Internet的融合,将会在各个领域的应用中将发挥出越来越重要的作用,技术更加趋于成熟,其应用前景更加广阔。

参考文献:1.王田苗主编.嵌入式系统设计与实例开发.清华大学出版社,20022.陈坚,孙志月.Modem通信编程技术.西安电子科技大学出版社,1999.3.邵贝贝等译.嵌入式实时操作系统.北京航空航天大学出版社,20024.熊桂喜,王小虎译.计算机网络.清华大学出版社,20035.(美)DouglasE.Comer,InternetworkingWithTCP/IPVolI:Principles,Protocols,andArchitecturesFourthEdition,PublishingHouseofElectron-icsIndustry,2001.12.6.McGregor.G,PPPInternetProtocolControlProtocol(IPCP),RFC1332,1992.7.陈渝,李明等编著.源码开放的嵌入式系统软件分析与实践-----基于SkyEye和ARM开发平台.北京航空航天大学出版社,2004.9图3各个模块的关系(上接第160页)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!183。

相关主题