TCP/IP 协议及网络编程
技术
课程设计
——邮件发送原型
指导老师:
周坚和
专
班
学
姓
时
业:
级:
号:
名:
间:
通信工程
通信 061 班
200600402040
邢蕾
2009 年 1 月 1 日
VC++课程设计
第 1页
目 录
第一章 需求分析 .............................................. 2
1.1 开发背景 ......................................................... 2
1.2 功能要求 ..........................................................2
第二章 系统总体分析 .......................................... 2
2.1 电子邮件介绍 ..................................................... 2
2.2 总体设计方案及思路 ............................................... 3
2.2.1 电子邮件的发送程序 ........................................... 3
2.2.2 电子邮件的接收程序 ........................................... 4
2.3 模块分析 ......................................................... 4
2.3.1 电子邮件发送程序的主要模块 ................................... 5
2.3.2 电子邮件接收程序的主要模块 ................................... 5
第三章 程序的测试(运行截图) ................................ 5
3.1 添加“关于”标签的测试 ............................................5
3.2 发送邮件的测试 ....................................................6
3.3 收取邮件的测试 ................................................... 8
第四章 设计总结 .............................................. 8
4.1 课程小结 ......................................................... 8
4.2 个人小结 ......................................................... 9
附录 (源代码) .............................................. 9
1 “关于”标签的程序代码 ............................................. 9
2 电子邮件发送程序的代码 ............................................ 10
3 附件的代码 ........................................................ 13
3 电子邮件接受程序的代码 ............................................ 14
VC++课程设计
第 2页
第一章、需求分析
1.1、开发背景
随着互联网的不断发展,越来越多的企业单位通过电子邮件来协同工作,打破时间与地
域的限制,大大提高了工作效率。电子邮件已地经成为人们生活中不可缺少的一部分。
但是,当前流行的各大邮件客户端软件除了最主要的收发信件之外,功能越来越复杂,
但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,
更加显得太过于华丽而不实用。所以这次的VC++课程设计,我选择了制作一个操作简单,
又可以实现最基本的电子邮件的收发功能的工具。
1.2、功能要求
①基本发送和接受邮件的功能。
②实现通信功能。
③具有简单、实用、易操作的图形界面。
④在以上基础上尽量实现发送附件的功能。
⑤程序还应可以判断整个过程是否能正常运行,如果不正常运行,必须给出错误信息。
第二章、系统总体分析
2.1、电子邮件介绍
电子邮件又称 E-mai1,是—种用电子手段提供信息交换的通信方式。它是全球多种网
VC++课程设计
第 3页
络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是—个
简易、快速的方法。通过连接全世界的 Internet,实现各类信号的传送、接收、存贮等处理,
将邮件送到世界的各个角落。到目前为止,可以说电子邮件是 Internet 资源使用最多的一种
服务,E-mai1 不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的
信息。
电子邮件的处理由两大部分组成:电子邮件发送程序和电子邮件接收程序。电子邮件发
送程序的发送方式有两种:第一种是本地计算机与用户所指定的发送邮件服务器连接,然后
通过发送邮件服务器将邮件传递到接收邮件服务器,邮件中包含有信件的主题和内容等一系
列信息;第二种是本地计算机直接与接收电子邮件的服务器相连,并将邮件送入收件者的邮
箱中。电子邮件接收程序则只需要处理本地计算机与存放电子邮件的服务器相连接,并通过
帐号和口令从服务器中获取电子邮件,邮件中包含有信件的主题、内容和发送时间等。
2.2、总体设计方案及思路
(1)电子邮件的发送程序
发送邮件的程序必须能够做 3 件事情:
①与接收电子邮件的服务器相连接;
②将相关的信息送入收件人的信箱;
③程序还应可以判断整个过程是否能正常运行,如果不正常运行,必须给出错误信息。
一般情况下,在VC++中,电子邮件程序的编写是利用Windows自带的MAP
I以及相关的通信协议 SMPT/POP3 等来实现的。但是要利用 MAPI 和通信协议实现一个功能
强大的电子邮件管理程序,需要很强的相关专业知识。随着现代软件业的发展,软件厂商提
供了方便、简易,与服务器无关且稳定的电子邮件处理组件,使我们可以在程序开发语言中
调用这些组件,利用很简单的语言实现功能强大的程序。JMail 组件就是一个很好用的电子
邮件程序开发第三方组件。所以这次的课程设计我选择了JMail组件。
JMail 组件中包含许多实现电子邮件处理的属性和方法。只需要在 VC++代码中创建一个
JMail 组件的对象,调用其中的某些功能,就能很快完成程序的开发。JMail 常用的发送邮
件的基本属性和方法如表 1 所示。
表 1 JMail 常用发送邮件的基本属性和方法
方法和属性
Body
Charset
Sendname
Sender
Serveraddress
Subject
Priority
功能
邮件内容
字符集,默认为“US-ASCII”
发送人姓名
发送人邮箱地址
SMPT 服务器地址,可制定多个,用分号分
开,并可指定端口;为空白时,JMail 会
尝试解决远程邮件服务器,然后直接发送。
标题
优先级(1:高优先级;3:普通优先级;5:
低优先级)
VC++课程设计
第 4页
AddAttachment(“filename”,[ContentType])
AddCustomAttachment(“filename”,data)
添加文件附件
添加自定义附件
AddURLAttachment
(“bstrURL”,“bstrAttachAS”,[bstrAuth])
下载并添加一个来自 bstrURL 的附件,
BstrAttachAS 指定受到信件的文件名。
AddRecipient(“Email-Address”)
增加一个收件人
AddRecipientEX(“Email-Address”,“name”)
增加一个带名字的收件人
AppendBodyFromFile(“filename”)
将一个文件追加到正文后
AppendText(“Text”)
Execute()方法
Close()方法
追加信的正文内容
执行发送
强制 JMail 关闭缓冲与邮件服务器的连接
由于 JMail 是第三方组件,因此 VC++程序要想调用 JMail 对象,就必须先下载 JMail
动态链接库,并在本机中进行注册。具体操作方法如下:打开运行对话框,输入 cmd,打开
命令提示符编辑器,输入如下指令即可注册成功:(JMail 组件的安装路径)regsvr32
jmail.dll
(2)电子邮件的接收程序
接收邮件的程序必须能够做三件事:
①与存放电子邮件的服务器相连接;
②读取相关的信件信息,并存放与本地计算机中;
③程序还将判断整个过程是否能正常运行,如果不正常运行,必须给出错误信息。
与电子邮件发送程序的编写相同,我还是采取 VC++语言和 JMail 组件相结合的方法来
实现邮件的收取。JMail 常用的接收邮件的基本属性和方法如表 2 所示。
表 2
JMail 常用接收信件的基本属性和方法
方法和属性
Body
Charset
Date
MailServer
Subject
Timeout
Connect()
功能
邮件内容
字符集,默认为(US-ASCII)
信件发送日期
邮箱所在的服务器
标题
连接服务器的超时限制
连接服务器,需要参数:帐号、口令、服务
器地址、端口
2.3、模块分析
电子子邮件接受方式程序主要由以下两个大的模块构成:发送邮件模块和收取邮件模
块。其功能模块如图 1 所示:
VC++课程设计
电子邮件客户应用系统
第 5页
发
送
邮
件
接
收
邮
件
图 1 电子邮件功能模块图
(1)电子邮件发送程序的主要模块
电子邮件发送程序主要由以下几个模块组成:
①邮件服务器:用于填写收件人的邮箱服务器(可以不填);
②收件人信箱:用于填写收件人的邮箱名;
③发件人信箱:用于填写发件人的邮箱名;
④主题:用于填写信件主题;
⑤正文:用于写入信件正文;
⑥退出:用于退出发件程序;
⑦发送:用于发送邮件;
⑧关于:用于显示软件开发的相关信息。
⑨附件:可以手动添加附件并完成发送(该功能正在进一步完善中)。
(⑧⑨为本小组另行添加的功能)
(2)电子邮件接收程序的主要模块
电子邮件接收程序主要由以下几个模块组成:
①邮件服务器:用于填写需要收取信件信箱的服务器;
②帐号:用于填写需要收取信件的邮箱帐号;
③口令:用于填写需要收取信件的邮箱密码;
④邮件列表:显示邮箱中所有邮件的列表;
⑤正文:当选中邮件列表中任一邮件时,显示该封信件的具体内容;
⑥退出:用于退出接收邮件程序;
⑦收取:用于收取信件。
VC++课程设计
第 6页
第三章、程序测试(运行截图)
3.1、添加“关于”标签的测试
在原设计的基础上我添加了一个“关于”的标签,点击该按钮会弹出一个小的对话框,
其中的内容包括本小组的成员、程序开发时间以及一些关于邮件方面的相关帮助信息。程序
的运行结果如图 1 所示。
图 2 “关于”程序主界面
VC++课程设计
第 7页
3.2、发送邮件的测试
图 3 邮件发送主界面(不带附件)