基于Java的电子邮件系统的简单设计与实现
2018-09-17孙琴琴
孙琴琴,钟 琪
(内江师范学院 计算机科学学院,四川 内江 641000)
信息化时代来临,互联网技术已广泛应用于人们的日常生活中,电子邮件也成为其中必不可少的沟通工具,使得用户能够以非常低廉的价格、快捷的方式、简便的方法与世界上任何一个角落的其他网络用户联系,并且相比于传统的邮件,电子邮件的功能更加强大,应用的领域更加广泛,传递的内容更加多样化。总之,电子邮件的存在极大地方便了人与人之间的沟通与交流,促进了社会的进步与发展。
1 电子邮件的设计原理及协议
1.1 基本原理
电子邮件的发送和接收原理可以形象地用日常生活中邮寄包裹的例子来解释。当我们邮寄包裹时,首先要找到一个能够邮寄包裹的邮局,在这家邮局里填好相应的信息之后,包裹就寄到了收件人所在的邮局,当收件人取包裹的时候就必须去相应邮局才能取出。同样的,当发送电子邮件时,邮件由发件人所在的邮件发送服务器发出,并且根据收件人的地址判断相应的邮件接收服务器的地址,将邮件发送到该服务器上,收件人读取邮件就可以通过访问相应的服务器完成。
1.2 详细过程
(1)假设发件人是sina的邮箱用户zhangsan@sina.com要将一封email发送给sohu的邮箱用户lisi@sohu.com。
(2)发件人首先将写好的email发送给sina的简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)服务器,该服务器收到用户要发送邮件请求时,会根据收件人的地址判断当前收件人是否是自己管辖的用户,如果是,就直接将email存放到为该收件人的分配的邮箱空间当中,如果不是,该SMTP服务器会根据收件人的地址,将这一封email发送给收件人所对应的SMTP邮件服务器。
(3)当收件人的SMTP服务器开始处理其他的SMTP服务器发送过来的email时,会根据收件人的地址判断收件人是否是自己管辖的用户,如果是,就直接将email存放到为收件人分配的邮箱空间当中,如果不是,该SMTP服务器可能会将email继续转发或者直接丢弃。
(4)用户lisi@sohu.com通过邮件客户端程序与sohu的IMAP/POP3服务器建立连接后,可以在登录邮件客户端程序后,通过POP3或IMAP协议查看邮箱中是否有新的邮件,如果有,可以通过相应的协议读取该邮件[1]。
2 邮件传输协议
2.1 SMTP协议
SMTP是一种TCP协议支持的提供可靠且有效的电子邮件传输的应用层协议,SMTP是建立在TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并且提供来信有关的通知。SMTP协议定义了通信双方采用的对话的规则和所有命令/响应形式的语法规则,也定义了邮件客户端软件与SMTP服务器之间的通信规则。
2.2 POP3协议
邮局协议(Post Office Protocol,POP3),邮件服务提供商专门为每个用户申请的电子邮箱提供了专门的邮件存储空间,用户要从邮件服务提供商提供的电子邮箱中获取自己的电子邮件,需要通过邮件系统服务提供商的POP3邮件服务器来帮助完成,该协议定义了邮件客户端程序与POP3服务器进行通信的具体规则和细节。
2.3 IMAP协议
消息访问协议(Internet Message Access Protocol,IMAP)是对POP3协议的一种扩展,定义了邮件客户端软件与邮件服务器之间的通信规则。IMAP4改进了POP3的不足,用户可以通过浏览信件头来决定是否收取、删除和检索邮件的特定部分,还可以在服务器上创建或更改文件夹或邮箱,它为用户提供了有选择的从邮件服务器接收邮件的功能、基于服务器的信息处理功能和共享信箱功能[2]。
3 详细设计及实现
3.1 系统详细功能
3.1.1 用户注册登录功能
用户注册时,必填信息包括用户名、密码和邮件配置,只有这些必填信息添加完整时,“注册”按钮才被激活。在整个注册过程中,对于用户的每一次操作,系统都将给出友好的提示来帮助用户完成注册。用户登录时,必填信息包括用户名、密码和验证码。填写正确即可登录,错误则给出相关错误提示信息。
3.1.2 发送邮件功能
当用户登录成功后,进入电子邮件系统界面,选择编写邮件,并且填好相应的信息,比如收件人、主题、附件、内容等,点击发送按钮后,邮件就会发送到指定的收件人的邮箱。
3.1.3 接收邮件功能
当用户登录成功后,进入电子邮件系统界面,选择收件箱,便可查看邮箱中的信息,查看最近是否有接收到的邮件,如果有,便可打开接收到的邮件进行读取,并且用户也可根据邮件的重要性选择是否回复邮件。
3.1.4 个人信息修改功能
当用户登录成功后,进入电子邮件系统界面,选择个人信息,就可查看当前用户的个人信息,选择编辑,便可对当前个人信息进行增、删、查、改等操作。
3.2 电子邮件系统的实现
由于电子邮件系统的实现主要包括电子邮件的发送和接收功能,因此,本文主要介绍电子系统的发送和接收电子邮件的原理,以及相应设计和实现的方法,其他的功能将不多加以赘述。
3.2.1 发送电子邮件
(1)发送电子邮件的实现。
①对连接服务器的会话信息,并从Session对象中获取某种邮件发送协议的Transport对象。
②编写邮件消息,利用Session对象创建Message对象,并调用Message对象封装邮件数据,比如消息的发送者、主题、发送日期等。
③发送邮件消息,连接指定的SMTP服务器,调用Transport对象中的邮件发送方法发送Message对象封装邮件中的数据[3]。
(2)关键代码。
3.2.2 接收电子邮件
(1)接收电子邮件的实现。
①连接服务器的会话信息,从Session对象中获得实现了某种邮件发送协议的Store对象。
②以某个邮箱账户的身份连接上POP3或IMP4服务器。
③调用Store的getFolder方法,获取代表改账户的邮箱中的某个邮件夹的Folder对象。
(2)关键代码。
4 结语
本文主要基于Java语言的电子邮件系统的接受功能和发送功能展开研究,以Java作为核心技术,将电子邮件系统分为五大功能,在深刻理解电子邮件工作原理的基础上,对发送电子和接收电子邮件进行了详细的设计与代码编写。并且通过运行结果可知,本文设计的电子邮件系统能够正常地发送和接收邮件,并且系统运行稳定,界面友好,操作方便。