APP下载

基于RFC协议的邮件客户端的设计与实现

2013-04-29李春娥张魁星

电脑知识与技术 2013年7期
关键词:电子邮件

李春娥 张魁星

摘要:电子邮件是互联网中交换信息广泛的通信工具之一。文章通过利用POP3协议和SMTP协议,前期对系统的需求进行分析,通过相关的协议设计实现电子邮件收发系统。系统的功能主要包括以下几个方面:邮件的发送模块、用户注册模块与收取模块以及地址簿管理模块。核心是邮件的发送与收取模块,邮件发送模块支持邮件的单个发送和群发;地址薄管理块可以使用户更加方便地管理自己的联系人,对联系人进行修改、添加、删除等。

关键词:POP3;SMTP;电子邮件

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)07-1507-02

随着互联网技术的迅猛发展,网络给人们带来了很多便利,电子邮件是使用最广泛的网络功能之一,是计算机技术和通信技术结合的产物,属于异步通信方式。文章在RFC底层协议的基础上,通过SMTP协议和POP3协议开发了功能全面、方便实用的邮件客户端程序。

1 电子邮件相关协议

开发邮件客户端程序用到RFC822邮件格式、SMTP协议和POP3协议。RFC822定义了SMTP 、POP3以及其他电子邮件的传输协议所传输和提交的内容;POP3是因特网上传输邮件的第一个协议,也是一个离线协议;SMTP是Internet上传送电子邮件的一个标准协议,主要作用就是传送和提交电子邮件,它规定了主机之间相互传送电子邮件所使用的标准交换格式。

2 系统总体设计流程

接收邮件和发送电子邮件是客户端的核心功能,其他的功能也是不可以缺少的,例如地址薄管理。邮件的发送需求要求可以实现邮件的正常发送,这样不仅可以实现单个邮件的发送,还可以群发邮件,同时也要求可以以附件的形式发送。邮件的接收需求要求可以实现电子邮件的完好接收,这样既可以实现邮件文本的接收也能实现附件的接收,此外,具有提示邮件的接收日期以及发件人。附加功能需求附件功能主要是地址薄管理功能,用户可以很便捷的对联系人进行系统的管理。根据系统的需求,系统的功能模块主要有收邮件模块、写邮件模块、地址薄管理模块以及账号管理模块。

3 系统实现

以发送邮件模块为例。在邮件发送程序SendMail中,重载的构造函数 SmtpMail()用于在初始化过程中,把用户选择的附件的路径以参数的形式传给FilePath。得到上传的附件的文件流GetStream,由于在网络中的操作都是以网络流的形式来实现的,因此先把上传的附件转换成文件流的形式,然后再利用Write的方法将这些文件流写入网络,从而完成发送附件的步骤。发送SMTP命令的函数SendCommand的作用是把SMTP命令的字符串转换成对应的字节型值(C#中规定的Write方法只能写入字节型的数据)然后写入网络中,如果操作成功就返回一个标志为真的布尔型变量,如果操作失败或者发生异常就返回标志为假的布尔型变量。

4 系统功能测试

发送邮件测试是对发送文本以及附件的测试,发送文本邮件给收信人,测试中用新浪的邮箱分别往新浪的邮箱以及163的邮箱发送文本邮件,均可以发送成功,同时具有群发功能;接收邮件测试是对单个邮件收取测试,在选取相应的邮件账号后,可以对单个邮件进行收取,也可以对新设置的邮件账号进行邮件的收取;地址薄管理测试是对地址薄管理的测试,包括增加、删除、修改联系人等。经过对系统的测试,本系统能对邮件进行发送,能对邮件进行收取以及对地址薄进行管理。

参考文献:

[1] 王征,李家兴.SQL Server 2005实用教程[M].北京:清华大学出版,2006:170-190

[2] 郑阿奇,梁敬东.C#程序设计教程[M].北京:机械工业出版,2009:101-201.

猜你喜欢

电子邮件
有关旅行计划的电子邮件
有关旅行计划的电子邮件
大数据时代背景下的海量电子邮件分析
民事诉讼电子邮件送达制度的司法适用
基于复杂网络的电子邮件网络搜索策略研究
小测试:你对电子邮件上瘾了吗?
有奖问答
有奖问答
为Linux架设Sendmailil邮件服务器
手机与E-mail的亲密接触