邮件系统的设计原理

我的微信公众号为机器知心媛,扫描二维码关注我吧

邮件系统的设计原理

1.相关技术介绍

Web Email相关开发技术做了简洁的介绍,通过对邮箱技术知识的了解,能够清楚地明白系统的原理。

JSP开发技术

JSP技术通俗一点地讲是HTML页面加上Java语言。JSP使得网页设计与网页逻辑分离,支持可重用组件的设计,使得基于Web应用程序卡法变得迅速。JSP和HTML都是展示页面,而JSP与HTML不一样的是,JSP可在页面内嵌入Java代码,给用户提供动态数据。用JSP开发的Web应用程序能够跨平台进行使用,既能在其他操作系统运行,也能在Linux系统下运行,也有着Java语言的最大优点,即一次编写随处运行,除了这个优点,JSP还具有很好的安全性以及很高的效率。

B/S架构

  B/S是Brower/Server,即浏览器/服务器架构,极少的事务处理在前端,大多事务处理都发生在后端。B/S架构不需要安装别的软件,只需客户端有浏览器即可,通过浏览器访问主页面。B/S分为表示层、业务逻辑层、数据访问层,表现层是对页面的渲染,将前台页面信息展现给用户,业务逻辑层则是用户对页面数据进行操作,在后台进行业务逻辑处理,数据层对客户端请求处理的数据进行运算,并存储在数据库内。B/S架构模式如图所示。浏览器向服务器发送Http请求,服务器接收到请求并解析该请求,调用业务逻辑处理,读写数据进数据库,数据库返回数据到应用层进行逻辑处理,渲染页面返回Html给客户端。

邮件系统的设计原理

MVC设计模式

MVC模式是模型(Model)、视图(View)、控制器(Controller)。设计模式和框架是不同的,框架是对代码的重用,设计模式是对设计的重用,本文系统依据MVC模式进行设计,用户通过浏览器发送请求到Dispatcher Servlet前端控制器,找到相对应的控制器,控制器调用业务处理到Model模型,并返回ModelAndView,将页面返回给用户。

MVC模式将视图、模型、控制器分离,一个模型可以有多个视图变化,当用户通过某个视图的控制器改变了数据,那么其他相关的视图数据也将会更新显示在页面。在MVC模式中,是通过JSP技术来展示页面,充当着MVC中的视图View,Servlet技术完成大量的事务处理,Servlet在其中担当着Controller的角色,决定着哪个页面发送给用户,JavaBean负责数据的处理,是MVC中的Model模型, MVC的好处是只需要在以前的程序上稍作修改或增加新的类,就可以轻松增加很多程序功能。

E-mail的技术原理

E-mail包括邮件用户代理MUA、邮件传输代理MTA、邮件传递代理MDA,MUA负责发信和收信,邮件由MUA代理发送出去,发送到MTA邮件传输代理上,如Email服务代理商,经由该发送人的邮箱传输到接收者的邮件服务代理商,到达对方的MTA后,MTA将邮件发送到最终目的地MDA,邮件就呆在了对方邮件服务商的某个服务器上,存在某个数据库中,不会传递到对方的电脑,当对方连接上网络时,通过MUA邮件用户代理将邮件从MDA中取出。邮件收发流程如图所示。

邮件系统的设计原理

邮件传输协议技术

电子邮件传输协议包括SMTP协议、POP3协议、IMAP协议等,本文系统邮件采用的时MIME邮件格式,MIME是多用途互联网邮件扩展类型,在发送电子邮件时附加多媒体数据,能够在邮件客户端根据类型进行处理,它可以支持声音、文本、图像、视频等。邮件收发协议运作如图所示。

邮件系统的设计原理

SMTP协议

SMTP是简单邮件传输协议,是TCP/IP协议簇,定义了邮件客户端和邮件服务器之间的通信规则,目标是向用户提供高效、可靠的邮件传输。SMTP协议主要是对发送邮件制定的协议,邮件用户代理MUA和邮件传输代理MTA都用到了SMTP协议,SMTP协议的端口号为25。最初的SMTP协议没有对发送方进行身份验证,后来就定义了SMTP-AUTH,保障了邮件的安全性和防止了垃圾邮件的入侵。

SMTP将邮件报文封装在邮件对象中,SMTP协议的邮件包含两部分:信封和内容。在SMTP通信时,发送端邮件服务器和接收端邮件服务器的25号端口建立TCP连接,客户端向服务器发送各种命令请求服务,服务端解析命令给予响应,直到两端的所有邮件发送完毕,可以从过程看出,命令和响应是SMTP协议的重点。

POP3协议

POP3协议是对接收邮件制定的协议,端口号为110,默认的传输协议为TCP。POP3支持离线邮件处理,当邮件发送到服务器上,将邮件从邮件服务器传送到个人电脑,使用的是POP3协议,同时在邮件服务器上下载邮件,也不删除邮件服务器上的邮件,这种离线访问模式是一种存储转发方式。POP3协议使用ASCII码来传输数据,POP3有三种状态:授权状态,处理状态,更新状态,当TCP建立连接时,POP3进入授权状态,检查用户的USER/PASS,,通过验证后,进入处理状态,处理用户发来的LIST命令,当用户发来更新命令,进入更新状态,处理完后又重新进入授权状态。使用POP3简化了用户的操作,无需访问邮件服务器,即可离线地查看个人邮件信息。

当都是一个服务器时如163服务器,客户端1发送邮件给客户端2,客户端1发送的邮件经过SMTP协议发送邮件,并存储到邮件服务器的数据库中,客户端2通过POP3协议收邮件。两个客户端相同邮件服务器的收发过程如图所示。

邮件系统的设计原理

当客户端接收方和发送方邮件服务器不同时,假设客户端1为163邮箱,客户端2为qq邮箱,客户端1发送邮件由SMTP协议经过163邮件服务器发送出去,与qq邮件服务器的SMTP的端口号为25进行TCP连接,qq邮件服务器将邮件存至邮件服务器数据库,客户端2POP3协议从数据库接收邮件。不同邮件服务器的收发邮件过程如图所示。

邮件系统的设计原理

电子邮件被很多商务人士使用,因为电子邮件在工作中显得更加正式,电子邮件实现了文本、音频、图像等不同信息的传递,加速了信息的传递和数据交流,与即时通讯的不同是,电子邮件优势是收取的邮件具有永久性,邮件中传递的附件不会被压缩,被永久地保存至邮件服务器中。本文介绍了使用浏览器访问的邮件系统Web Email的技术原理和相关协议。

系统开发环境

(1)Java环境

Java环境为JDK1.8,配置好JDK版本,将Java环境配置好。

(2)数据库

采用的是MySQL5.5数据库,更好地对数据进行存储管理,使用Navicat数据库管理工具,用户界面简单易用,支持最全面的文件类型的导入导出。

(3)Tomcat服务器

本文系统由Tomcat9服务器运行,Tomcat服务器是一个免费的开放源代码的Web服务器,非常适合开发和调试JSP程序,属于轻量级应用服务器,当配置好Apache Tomcat服务器时,可以响应HTML页面的访问请求,本文系统所有界面是由Tomcat9运行显示。

(4)集成开发工具IDEA

使用的开发工具是IntelliJ IDEA,具有体积小速度快、高可用性的特点,灵活的JUnit支持,单元测试可以独立运行,支持J2EE,在业界内被公认为最好的Java开发工具之一。