邮件收发编程(-)--原理

1,402 阅读5分钟

简介

  • 邮箱对我们来说是再熟悉不过了,它与我们的生活、工作紧密联系在一起:登录、注册、往来沟通...无处不在;
  • 邮箱的使用很便捷,可是邮箱是如何传输、投递信息呢?电子邮件协议
  • 电子邮件协议主要包括IMAP、POP3、SMTP协议;
  • 这篇文章将给大家介绍一下邮件所用的协议、协议格式标准以及不同协议之间的区别与联系;

邮件收发逻辑图

邮件收发原理

SMTP

  • SMTP的全称是Simple Mail Transfer Protocol即简单邮件传输协议,在1982年正式提出。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
  • SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
  • SMTP是一种应用层、基于文本格式的协议,主要用于邮件服务器间的连接、数据传输等。

POP

  • POP是Post Office Protocol的简称,即邮局协议。现在主要使用是POP3即邮局协议的第3个版本;
  • 它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议, 是TCP/IP协议族中的一员(默认端口是110);
  • 它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。 POP与POP3区别
  • POP协议支持离线邮件存储转发处理即客户端程序连接服务器,下载所有未阅读的电子邮件;一旦将邮件从邮件服务器端送到客户端上,邮件服务器上的邮件将会被删除;
  • 目前的POP3邮件服务器大都可以只下载邮件,服务器端并不删除,也就是改进后的POP协议;
  • POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的,本地化的操作不会同步到邮箱服务器。

IMAP

  • IMAP全称是Internet Mail Access Protocol,即交互式邮件访问协议,是一个应用层协议(端口是143)。用来从本地邮件客户端(Outlook Express、Foxmail、Mozilla Thunderbird等)访问远程服务器上的邮件。

IMAP和POP3的区别

  • IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP和POP3是邮件访问最为普遍的Internet标准协议。不同点如下所示:
  • IMAP提供Webmail与电子邮件客户端之间的双向通信,客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上(如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的)。而POP3在客户端的操作不会同步到服务器上;
  • IMAP更好地支持了从多个不同设备中随时访问新邮件;
  • IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定;
  • POP3需要下载未阅读的邮件,IMAP可以不用把所有的邮件全部下载,而是通过客户端直接对服务器上的邮件进行操作。所有通过IMAP传输的数据都会被加密,从而保证通信的安全性;
  • IMAP 整体上为用户带来更为便捷和可靠的体验。POP3更易丢失邮件或多次下载相同的邮件。

POP3收件过程

POP3收件过程

IMAP收件过程

IMAP收件过程

POP3与IMAP最大的不同是对POP邮局里邮件处理位置,POP3邮件是在客户端对邮件进行各类的处理,而IMAP是在服务端对邮件进行处理。

RFC822标准

  • RFC 822是电子邮件的标准格式,电子邮件除了是由一个Internet用户传递给另一个用户的信息之外,还必须包含附加的服务信息,这两个部分加在一起叫做电子邮件的标准格式,外文简称RFC 822(摘录于百度百科);
  • 该标准主要定义邮件结构和数据格式,为邮箱服务器的数据解析和数据重组提供统一的处理方式,比如:一些处理邮件代收发的第三方库都必须按照该标准处理数据。