1 电子邮件的需求
随着网络应用的不断推广,电子邮件越来越多的被大家使用。虽然我们往往将电子邮件与 Foxmail、Outlook这样的电子邮件客户端联系起来,但是往往在企业业务应用中我们也需要自己编程实现发送接收邮件的功能。
2 电子邮件的协议
邮件的收发,说白了就是邮件内容在特定的机器上的信息流转(发送和接收)。而信息的流转需要依靠网络协议的支持。
当前常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。
2.1 SMTP协议
SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
2.2 POP协议
POP的全称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用TCP的110端口,现在常用的是第三版,所以简称为 POP3。邮局协议负责从邮件服务器中检索电子邮件。它要求邮件服务器完成下面几种任务之一:从邮件服务器中检索邮件并从服务器中删除这个邮件;从邮件服务器中检索邮件但不删除它;不检索邮件,只是询问是否有新邮件到达。
2.3 IMAP协议
IMAP的全称是 Internet Mail Access Protocol 即互联网信息访问协议,IMAP是斯坦福大学在1986年开发的研发的一种邮件获取协议,互联网信息访问协议(IMAP)是一种优于POP的新协议。和POP一样,IMAP也能下载邮件、从服务器中删除邮件或询问是否有新邮件,但IMAP克 服了POP的一些缺点。例如,它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件。客户机可先阅读邮件信息的标题和发送者的名字再决定是否下载这个邮件。通过用户的客户机电子邮件程序,IMAP可让用户在服务器上创建并管理邮件文件夹或邮箱、删除邮件、查询某封信的一部分或全部内容,完成所有这些工作时都不需要把邮件从服务器下载到用户的个人计算机上。
2.4 各个协议的运用
简单邮件传输协议SMTP(Simple Mail Transfer Protocol)和邮局协议POP(Post Office Protocol)是负责用客户机/服务器模式发送和检索电子邮件的协议。用户计算机上运行的电子邮件客户机程序请求邮件服务器进行邮件传输,邮件服务器采用简单邮件传输协议标准。很多邮件传输工具,如outlook express、fox mail等,都遵守SMTP标准并用这个协议向邮件服务器发送邮件。SMTP协议规定了邮件信息的具体格式和邮件的管理方式。
SMTP的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。 SMTP是个请求/响应协议,它监听25号端口,用于接收用户关于邮件请求,并与远端邮件服务器建立SMTP连接。
POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。POP3 服务是一种用来接收电子邮件的电子邮件服务。管理员可以使用 POP3 服务,在邮件服务器上存储和管理电子邮件帐户。在邮件服务器中安装了 POP3 服务后,用户即可使用支持 POP3 协议的电子邮件客户端(如 Outlook 或 Outlook Express)连接到邮件服务器,并将电子邮件接收到其本地计算机中。
3 邮件系统的架构
一个成熟的邮件系统,就相当于我们日常生活中的邮局,能够收到一些要待发出去的邮件,又能够投递出一些待发的邮件。
必须提供两种服务,就是SMTP的邮件发送服务,POP3的邮件接收服务。
一般来说一个成熟的邮件系统会是这样的架构:
1台smtp服务器,
1台pop3服务器,
1台应用+数据库服务器。
常用网站 接收服务器 发送服务器
@163.com邮箱 pop.163.com smtp.163.com
@126.com邮箱 pop3.126.com smtp.126.com
@sohu.com邮箱 pop3.sohu.com smtp.sohu.com
端口号一般是固定的:
SMTP :25
POP3 :110
4 邮件系统的安全处理
邮件系统的安全处理涉及到两个安全协议。
4.1 SSL
安全套接层 (Secure Sockets Layer ,SSL),是为网络通信提供安全及数据完整性的一种安全协议。
SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
4.2 TLS
传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
TLS和SSL功能相同,用于通信之间提供保密性和数据完整性。
4.3 加密后的一般端口号
邮件经过安全加密处理后,端口号会发生相应的变化。
POP3服务器端口:995
支持SSL
SMTP服务器端口: 端口:465 或者 587
支持SSL(TSL)
465端口是SSL/TLS通讯协议的 内容一开始就被保护起来了 是看不到原文的。
587端口是STARTTLS协议的 属于TLS通讯协议 只是他是在STARTTLS命令执行后才对之后的原文进行保护的。