C/S模式下的电子邮件系统设计与实现

2022-12-16 版权声明 我要投稿

1 系统总体框架

电子邮件系统可分为客户端和服务器两部分, 根据邮件在传输时使用的协议它们又分别可以分为SMTP和POP3协议[1~3]。图1中给出了电子邮件系统的整体框架结构。首先由ESMTP客户端编写并发送邮件;SMT P服务器接收到邮件后根据收件人是否是本地用户进行分发[4~8]。如果是本地用户, 则将邮件直接投递到用户邮箱中;如果是远程邮箱, 则将邮件转发到收件人所在的服务器上;最后收件人通过POP3客户端经过POP3服务器, 把邮件从服务器上的邮箱中取到本地主机上进行解析和显示。

2 ESMTP客户端的详细设计

2.1 检查邮件信息完整性模块

当发送邮件时, 点击发送按钮, 首先是对界面上要求用户填写的邮件信息区域进行检查。

2.2 邮件信息编码模块

当点击发送按钮后, 并对相关填写信息核对后, 就进入邮件信息编码模块, 现在的SMTP服务器都需要身份验证, 即为ESMTP, 而在验证前首先要对用户名和密码进行Base64的编码。

2.3 邮件发送模块

当经过邮件信息完整性检查和信息编码后, 则进入邮件发送模块, 邮件发送模块是指从连接服务器开始到邮件发送成功的整个过程。只有遵照ESMTP协议, 按照一定的过程与服务器交互, 才能将用户已经写好的邮件完整无缺的发送出去, 这整个交互过程是在Winsock控件的Data Arrival事件中完成的。

2.4 附件选取功能实现

首先添加Common Dialog控件, 名称为dlg File, 因为Co mmon D ia lo g控件提供诸如打开和保存文件、设置打印选项、选择颜色和字体等操作的一组标准对话框。而程序中只需要Common Dialog控件提供打开这个标准对话框。通过打开这个对话框我们可以选取要添加的附件路径。其次再添加两个按钮控件, 分别名称为cmd Add Adjunct与cmd Remove Adjunct, 前者为添加附件按钮, 后者为删除附件按钮。

2.5 状态显示功能实现

在发送邮件过程中, 当客户端与服务器进行交互时, 一般各个状态是在客户端与服务器默认情况下进行的, 但是为了让用户了解到传输的过程, 因此添加了状态显示功能, 用label控件可以实现此功能。

3 POP3客户端的详细设计

3.1 客户端连接POP3服务器

当填写好pop服务器地址、用户名、密码时点击按钮, 此时按钮的Click事件里就开始与服务器建立连接, 只有遵照POP3协议, 按照一定的过程与服务器交互, 才能够从指定的服务器上指定的账号中获得完整的邮件信息。Winsock1_Data Arrival过程首先还是调用Winsock控件中的Get Data方法从系统缓冲区中取得服务器发回的消息, 然后遵照POP3协议进行解析并给出相应的回应。

3.2 从POP3服务器上检取邮件

从POP3服务器上检取邮件, 是在程序POP 3_RE TR状态进行的, 在检取的过程中用到了两个类函数分别是Cmessage类和Cmessages类。首先Cmessage类是代表个体, C me s s a g e类模块包装了从服务器上接收POP3邮件, 它提供了各种属性和方法来访问邮件的不同参数。

3.3 用户界面上显示选定的邮件

图6登陆网络邮件服务器查看邮件

当在列表试图中选定某个邮件时, 邮件接收客户端就会认为用户想要浏览这封邮件, 于是在相应列表试图的Item Click事件时, 我们从邮件集合中读取相应邮件, 并将邮件内容显示在正文文本框内。

4 搭建虚拟局域网服务器

因为本测试阶段需要电子邮件客户端利用向虚拟局域网邮件服务器和广域网公共邮件服务器上发送或接收邮件的试验对比, 来测试其兼容有效性, 这就需要搭建一个虚拟邮件服务器, 本文通过W i n d o w s S e rv e r 2 0 0 3提供的P O P 3服务和SMTP服务架设小型邮件服务器来满足需要。

4.1 安装POP3和SMTP服务组件

W in d o w s S e r v e r 2 0 0 3下手工添加POP 3和SM TP服务组件。

4.2 安装POP3服务组件

以系统管理员身份登录W i nd o w s S e rv e r 2 0 0 3系统。依次进入“控制面板→添加或删除程序→添加/删除Window s组件”在弹出的“Window s组件向导”对话框中选中“电子邮件服务”选项, 点击“详细信息”按钮, 选中“POP3服务Web管理”。

4.3 安装SMTP服务组件

选中“应用程序服务器”选项, 点击“详细信息”按钮, 接着在“Internet信息服务 (IIS) ”选项中查看详细信息, 选中“S M T PSe rvic e”。完成以上设置后, 点击“下一步”按钮, 系统就开始安装配置POP3和SMTP服务了。

4.4 配置POP3服务器

创建邮件域:点击“开始→管理工具→POP3服务”, 弹出POP3服务控制台窗口。选中左栏中的POP3服务后, 点击右栏中的“新域”, 弹出“添加域”对话框, 接着在“域名”栏中输入邮件服务器的域名, “sy.com”。

4.5 创建用户邮箱

选中刚才新建的“sy.com”域, 在右栏中点击“添加邮箱”, 弹出添加邮箱对话框, 在“邮箱名”栏中输入邮件用户名, 然后设置用户密码, 然后“确定”, 完成邮箱的创建如图2所示。

4.6 配置SMTP服务器

点击“开始→程序→管理工具→Internet信息服务 (IIS) 管理器”, 在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项, 在弹出的菜单中选中“属性”, 进入“默认SMTP虚拟服务器”窗口, 切换到“常规”标签页, 在“IP地址”下拉列表框中选中邮件服务器的IP地址如图3所示。“确定”后, 这个简单的虚拟邮件服务器就架设完成了。

完成以上设置后, 就可以使用邮件客户端软件连接邮件服务器进行邮件收发测试了。在设置邮件客户端软件的SMTP和POP3服务器地址时, 输入邮件服务器的域名“sy.cn”。

5 系统仿真

5.1 邮件发送模块测试

(1) 兼容性测试。

检查邮件发送客户端是否能在实际中正常运用。因为本邮件系统采用的服务器为windows系统自带的虚拟邮件服务器或是网络中邮件服务器, 所以针对不同的服务器进行客户端测试。

首先可以看见邮件客户端界面如图4所示。从这里用户选择接收或发送邮件。

当虚拟邮件服务器配置好后, 将虚拟邮件服务器的地址填写在客户端界面上, 然后将自己创建的用户名和密码也填写好, 点击发送按钮, 从客户端的状态栏中可以看到与虚拟邮件服务器的交互过程, 最后弹出提示发送成功。表明邮件发送到服务器端。

重新打开邮件发送客户端, 现在针对网络中的服务器, 如163邮件服务器进行测试。首先填写邮件服务器的地址:SMTP.1 6 3.c o m。然后将用户名和密码填写好, 最后按照界面要求填写其他信息。最后添加附件, 点击发送按钮, 如图5所示。

同样从状态栏中看到客户端与163S M T P服务器的交互过程, 最后弹出信息提示发送成功, 然后我们用IE登陆163邮件网址, 登陆收件人用户名的邮箱, 可以在其中看到我们刚刚发送的邮件。图6说明刚才发送成功。不过这里的用户是针对开通SMTP服务器权限的用户。同时可以看见附件也发送成功, 并正确显示在附件栏中。

通过测试, 说明接收服务器能够正常的对ESMTP和SMTP命令做出响应, 实现收取邮件过程, 说明客户端有较好的兼容性。能够实现在广域网中或在局域网中发送电子邮件。

(2) 功能测试。

状态栏功能:在发送的过程中, 状态栏对交互过程的状态能够显示 (如图7所示) , 状态栏功能正常。

邮件信息完整性检查功能:当我们故意漏填界面上的信息时, 就会弹出相应的信息提示如图8所示。

特别是对收件人地址格式的错误的检查, 保证信息的完整与正确性。

(3) 邮件内容编码功能测试。

我们在发送邮件的时候在内容里填写英文和中文两种字体, 发送成功后, 我们通过IE登陆收件人邮箱, 可以看见刚才发送的邮件内容中是英文和中字体。图9说明邮件编码功能正常。

5.2 邮件接收模块测试

选用windows虚拟邮件服务器和163服务器进行测试。

当虚拟邮件服务器设置成功后, 在邮件接收客户端填写POP3地址, 在虚拟服务器设置时自己创建的用户和密码, 点击确定, 则在邮件列表上显示邮箱内的邮件, 点击列表中的其中一封邮件, 则在内容窗口中显示邮件正文内容, 客户端从POP3邮件服务器上检取邮件成功, 实现邮件接收查看。

重新打开客户端, 测试从网络中的邮件服务器上检取邮件, 选用163服务器进行测试, 先按照界面要求填写信息, 点击确定后, 在邮件列表上显示邮件信息, 点击其中一封邮件, 则在内容窗口上显示邮件正文内容, 图10所示, 说明邮件接收成功。

通过测试, 得知该客户端能与广域网中的服务器和局域网中的服务器都能连接, 并检取邮件信息和显示邮件内容。说明邮件接收功能正常, 同时也说明该客户端具有良好的兼容性

6 结语

本文就网络聊天服务器程序和网络聊天客户程序两个方面展开论述。在网络编程中对信息的读取、发送, 利用流来实现信息的交换, 对实现一个系统的信息流进行分析。首先在短时间内建立系统应用原型, 然后对初始原型系统进行不断修正和改进, 直到形成实用系统。

摘要:本文就网络聊天服务器程序和网络聊天客户程序两个方面展开论述。前者通过Socket套接字建立服务器, 服务器能读取、转发客户端发来信息。后者通过与服务器建立连接, 来进行客户端与客户端的信息交流。根据局域网通信机制的原理, 通过直接继承Thread类来建立多线程。在网络编程中对信息的读取、发送, 利用流来实现信息的交换, 对实现一个系统的信息流进行分析。首先在短时间内建立系统应用原型, 然后对初始原型系统进行不断修正和改进, 直到形成实用系统。

关键词:客户端/服务器端模式,套接字,电子邮件

参考文献

[1] Debbabi M, Saleh M.Security Evalu-ation of JAVAME CLDC Embeded Java Plat form[J].Journal of Object Technology, 2006 (2) :125~154.

[2] 张华.电子邮件系统POP3服务客户端邮件收取功能设计[J].潍坊学院学报, 2009, 9 (4) :31~33.

[3] 潘峰, 王翰虎, 张儒良, 等.一种新型电子邮件系统的研究与仿真[J].计算机应用与软件, 2009, 26 (8) :49~51.

[4] 徐剑, 李晶, 张钊, 等.基于身份密码体制的安全电子邮件系统[J].计算机工程, 2009, 35 (9) :179~181, 184.

[5] Wassim I, Kayssi A.Application-layerEnd-to-end Security for Mcommerce[J].Journal of Network and ComputerApplications, 2004, 27 (1) :13~32.

[6] Ghosh A K, Swaminatha T M.Soft-ware Security and Privacy Risksin Mobile E-commerce[J].Communicationsof the ACM, 2001, 21:51~57.

[7] 白永祥.PGP电子邮件系统的安全性分析及其改进[J].计算机安全, 2008 (9) :61~64.

[8] 张庆胜, 金端峰, 郑峰, 等.基于IBC技术的安全电子邮件系统[J].计算机工程与设计, 2009, 7:1608~1610.

上一篇:2016年全国Ⅱ卷物理高考试题中的临界问题探析下一篇:浅谈如何提高小区的住宅性能