电子邮件发送程序的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电⼦邮件发送程序的设计与实现
⽬录
1 前沿 (1)
1.1课题背景 (1)
1.2课程设计⽬的 (2)
1.3课程设计基本任务 (2)
2 设计平台简介 (3)
3、设计原理 (4)
3.1 软件总体架构 (4)
3.2 程序功能框架图 (4)
3.3 协议研究与分析 (5)
3.4 环境说明 (6)
4.详细设计 (7)
4.1窗体界⾯控件设计 (7)
4.2 程序实现 (8)
5、系统的实现与测试 (15)
5.1 发送电⼦邮件程序主界⾯(带附件) (15)
5.2接收界⾯(带附件) (15)
6、结束语 (17)
参考⽂献 (18)
电⼦邮件发送程序的设计与实现
摘要电⼦邮件(简称1)⼜称电⼦信箱、电⼦邮政,它是—种⽤电⼦⼿段提供信息交换的通信⽅式。

电⼦邮件软件的最基本功能就是实现邮件的发送与接收,本课程设计完成电⼦邮件的发送功能实现。

本程序是在了解底层协议的协议和协议基础上,以2005为开发平台,使⽤控件并使⽤编程语⾔从协议规定的底层命令做起⼀步步的与服务器进⾏交互操作,最终实现发送邮件功能,其发送功能包括:简单邮件的发送、带附件的邮件的发送、发送次数的设置。

⽂中深⼊讲解了的原理及电⼦邮件发送程序的设计与实现⽅法。

关键词电⼦邮件;;;编程;邮件发送
1 前沿
1.1课题背景
随着的迅猛发展,电了邮件(E—)已成为凼特⽹上⾮常流⾏、⾮常⽅便的通信⽅式。

电⼦邮件(简称1)⼜称电⼦信箱、电⼦邮政,它是—种⽤电⼦⼿段提供信息交换的通信⽅式。

它是全球多种⽹络上使⽤最普遍的⼀项服务。

这种⾮交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的
⽅法。

通过连接全世界的,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个⾓落。

到⽬前为⽌,可以说电⼦邮件是资源使⽤最多的⼀种服务,1不只局限于信件的传递,还可⽤来传递⽂件、声⾳及图形、图像等不同类型的信息。

电⼦邮件发送程序的发送⽅式有两种:第⼀种是本地计算机与⽤户所指定的发送邮件服务器连接,然后通过发送邮件服务器将邮件传送到接收邮件的服务器,邮件中包含有信件主题和内容等⼀系列信息;第⼆种是本地计算机直接与接收电⼦邮件的服务器相连接,并将邮件送⼊收信者的邮箱中,电⼦邮件接收程序则只需要处理本地计算机与存在电⼦邮件的服务器相连接,并通过帐号和⼝令从服务器中获取电⼦邮件,邮件中包含有信件主题、内容和发送时间等。

电⼦邮件不是⼀种“终端到终端”的服务,是被称为“存贮转发式”服务。

这正是电⼦信箱系统的核⼼,利⽤存贮转发可进⾏⾮实时
通信,属异步通信⽅式。

即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对⽅现在不在,仍可将邮件⽴刻送到对⽅的信箱内,且存储在对⽅的电⼦邮箱中。

接收者可在他认为⽅便的时候读取信件,不受时空限制。

在这⾥,“发送”邮件意味着将邮件放到收件⼈的信箱中,⽽“接收”邮件则意味着从⾃⼰的信箱中读取信件,信箱实际上是由⽂件管理系统⽀持的—个实体。

1.2课程设计⽬的
本课程设计的⽬的主要是学习在平台下围绕着电⼦邮件发送的编程与开发,应⽤软件⼯程的开发过程,详细论述了的分析、设计及代码实现,最终实现⼀个具有能发送简单邮件,发送带附件的邮件的邮件发送器。

1.3课程设计基本任务
(1)了解编程环境。

(2)了解协议的通信原理。

(3)功能模块的实现。

包括发送简单邮件的实现、发送带附件的邮件的实现、设置发送次数的实现及各种错误提⽰的实现。

(4)系统的实现与测试。

包括编译后的程序和运⾏测试功能需求的实现。

2 设计平台简介
编程环境简介:
20世纪80年代以来,语⾔⼀直是使⽤最⼴泛的商业化开发语⾔。

但在带来强⼤控制能⼒和⾼度灵敏性的同时,其代价是相对较长的学习周期和较低下的开发效率,同时对控制能⼒的滥⽤也给程序的安全性带来了潜在的威胁。

语⾔过度的功能扩张也破坏了⾯向对象的设计理念。

因此,软件⾏业迫切需要⼀种全新的现代程序设计语⾔,他能够在控制能⼒与⽣产效率之间达到良好的平衡,特别是将⾼端应⽤开发与底层平台访问紧密结合在⼀起,并与标准保持同步,(读作)语⾔就是这⼀使命的承担着。

语⾔是从语⾔发展⽽来的,他汲取了包括、、在内的多种语⾔精华,是⼀种简单易学、类型安全和完全⾯向对象的⾼级程序设计语⾔。

它的设计⽬标就是在继承强⼤功能的⽤时,兼有(快速应⽤程序开发)语⾔的⾼效性。

作为的核⼼编程语⾔,充分享受了所提供的优势,能够与其他应⽤程序⽅便的集成和交互。

下⾯是对它⼏个突出特点的描述:
语法简洁:取消了指针、也不定义繁琐的伪关键字;它使⽤有限地指令、修饰符合操作符,语法上⼏乎不存在任何冗余,整个语⾔结构⼗分清晰。

与紧密结合:借助服务框架,使得⽹络开发和本地开发⼏乎⼀样简单。

开发⼈员⽆需了解⽹络的细节,可以⽤统⼀的⽅式来处理本地的和远程的对象,⽽组件能够⽅便的转为服务,并被其他平台上的各种编程语⾔调⽤。

⽬标软件的安全性:符合通⽤类型系统的类型安全性要求,并⽤所提供的代码访问安全特性,从⽽能够在程序中⽅便的配置安全等级和⽤户权限。

此外,垃圾收集机制⾃动管理对象的⽣命周期,这是的开发⼈员⽆需再负担内存管理的任务,应⽤程序的可靠性进⼀步得到提⾼。

灵活性与兼容性:中允许使⽤⾮托管代码来与其他程序(包括组件、32等)进⾏集成和交互。

它还可以通过委托()来模拟织针的功能,通过接⼝来模拟多继承的实现。

3 设计原理
3.1 软件总体架构
软件通过1、、、、1类来实现电⼦邮件发送的各种功能,如发送简单邮件、发送带附近的邮件、设置发送次数、发送邮箱的类型……⽤户通过主界⾯来选择这些功能,软件为⽤户提供相应的服务。

总体架构如图3.1:
图3.1 软件总架构
3.2 程序功能框架图
电⼦以邮件发送软件向⽤户提供了各种功能,其中主功能为:简单邮件的发送和带有附件的邮件的发送,附加功能有:设置邮件⾃动发送的次数。

另外,此程序中还有各种错误的提⽰,如发件⼈、收件⼈、主题格式不合法的提⽰,附件路径是否正确的提⽰,⽹络不正常的提⽰等等。

如图3.3所⽰:
图3.2 程序功能框架
3.3 协议研究与分析
简单邮件传输协议()的⽬标是可靠⾼效地传送邮件,它独⽴于传送⼦系统⽽且仅要求⼀条可以保证传送数据单元顺序的通道。

的⼀个重要特点是它能够在传送中接⼒传送邮件,传送服务提供了进程间通信环境(),此环境可以包括⼀个⽹络,⼏个⽹络或⼀个⽹络的⼦⽹。

理解到传送系统(或)不是⼀对⼀的是很重要的。

进程可能直接和其它进程通过已知的通信。

邮件是⼀个应⽤程序或进程间通信。

邮件可以通过连接在不同上的进程跨⽹络进⾏邮件传送。

更特别的是,邮件可以通过不同⽹络上的主机接⼒式传送。

基于以下通信模型:针对⽤户的邮件请求,发送建⽴与接收之间建⽴⼀个双向传送通道。

接收可以是最终接收者也可以是中间传送者。

命令由发送发出,由接收接收,⽽应答则反⽅⾯传送。

⼀旦传送通道建⽴,发送者发送命令指明邮件发送者。

如果接收者可以接收
邮件则返回应答。

发送者再发出命令确认邮件是否接收到。

如果接收者接收,则返回应答;如果不能接收到,则发出拒绝接收应答(但不中⽌整个邮件操作),双⽅将如此重复多次。

当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回应答。

提供传送邮件的机制,如果接收⽅与发送⽅连接在同⼀个传送服务下时,邮件可以直接由发送⽅主机传送到接收⽅主机;或者,当两者不在同⼀个传送服务下时,通过中继服务器传送。

为了能够对服务器提供中继能⼒,它必须拥有最终⽬的主机地址和邮箱名称。

图3.3 通信模型
3.4 环境说明
操作系统;2005
4 详细设计
4.1窗体界⾯控件设计
本次窗⼝设计中,主要⽤到⼯具箱资源,⼯具箱中包含了可重⽤的控件。

窗⼝是实现应⽤程序⼈机交互的重要组成部分,它不但可以实现数据流的输⼊和输出,⽽且也可以移动和关闭对话框。

使⽤可视化的⽅法编程时,可在窗体中拖放控件,绘制出应⽤程序界⾯。

尤其在设计对话框时,使⽤⼯具箱中的可视化控件⽆疑使开发变得⼗分⽅便。

要在应⽤程序中操作对话框资源,⾸先需要创建它。

本实验在 2005中对程序界⾯设计的对话框如图4.1所⽰
图4.1 电⼦邮件发送程序界⾯
其中,6个⽂本框的属性从上到下依次为:, , , , , 。

2个按钮的属性为,。

4.2 程序实现
本课程设计中主要是⽤到了命名空间,此空间的包含的类为1、、、、1,其中1类⽤于检测发件⼈、收件⼈和主题是否合法。

这5个类中最核⼼的类为1。

下⾯将对1类分四部分进⾏说明:
1)构造电⼦邮件
此部分主要有以下属性和⽅法
在本次课程设计中,⽂本框⽤于填写发件⼈的地址、⽂本框⽤于填写收件⼈的地址、⽂本框⽤于填写信件主题、⽂本框⽤于⼿动添加附件、⽂本框⽤于填写邮箱密码、⽂本框⽤于写⼊信件正⽂,双击各⽂本框时,⽂本框的内容⾃动清除后即可完成⽂本框内容的输⼊,程序中初始化⼀些信息。

具体代码如下所⽰:
双击发件⼈监听⽅法
( , e)
{
设置发送⽂本为空
= ;
}
双击收件⼈⽂本框的监听⽅法( , e)
{
设置接收⼈⽂本为空
= ;
}
双击主题⽂本框的监听⽅法( , e)
{
设置主题⽂本框为空
= ;
}
双击附件⽂本框
( , e)
{
情况附件内容
;
}
密码框双击监听⽅法
( , e)
{
清空密码框
= ;
}
邮件体双击监听⽅法
( , e)
{
清空邮件体⽂本框
= ;
}
初始化⼀些信息
1( , e)
发送次数
= "1";
发件⼈地址
= "134700@163";
收件⼈地址
= "134700@163";
邮件标题
= "我的邮件";
邮件主体内容
= "发送成功";
邮箱密码
= "271853927";
发送次数⽂本框默认为不可修改 = ;
⾃动发送复选按钮默认为未选中状态
1 = ;
}
2)构造电⼦邮件附件
⽤来构造电⼦邮件附件.⽤此类构造了电⼦邮件附件然后添加到对象的集合即可。

在本次课程设计中,通过单击添加附件和删除附件按钮实现附件的添加和删除,添加附件成功后添加到对象中,具体实现代码如下:
添加附件按钮触发函数
1( , e)
{
1();
= 1;
}
删除附件按钮触发函数
2( , e)
{
= "";
}
判断是否有附件添加有的话就添加到对象中
((":\\"))
{
添加附件到对象
}
3)发送电⼦邮件及其附件,这是这个类中的核⼼函数
在本次课程设计中,通过单击单击发送按钮和复选按钮来实现邮件的发送和发送次数的设置,通过退出按钮进⾏退出。

邮件发送时,发送按钮的⽂本将⾃动改为“正在发送”,此时,程序将对发件⼈和收件⼈地址进⾏封装、设置主题和内容的编码格式、并创建⼀个对象⽤于传递邮件、最后构造客户端对象后便可实现邮件的发送。

邮件发送成功后,会⾃动跳出“发送成功”的对话⽂本框。

具体代码如下所⽰:
发送邮件按钮
3( , e)
{
取得发送次数
i = 32();
按发送次数循环发送
( x = 1; x <= i; )
{
= "发送";
线程睡1秒
(1000);
如果⾃动发送的复选按钮为选中状态则执⾏这⾥
(1 )
{
将发送信息写⼊主题⽂本框
= "" + ();
发送次数加1
1;
}
将发送按钮的⽂本改为“正在发送”
= "正在发送";
将发送按钮设置为不可点击状态
= ;
{
封装发件⼈地址
= (());
封装收件⼈地址
= (());
创建⼀个对象⽤于传递邮件
= (, );
设置主题
= ;
设置邮件体信息
= ;
将邮件体部分设置为格式
= ;
判断是否有附件添加有的话就添加到对象中 ((":\\")) {
添加附件到对象
(。

相关文档
最新文档