【闲谈】E-mail是怎么发送和接收的?


在现在生活和工作中,我们几乎离不开电子邮箱。那么电子邮件到底是怎么工作的呢?笔者对此产生了兴趣。决定去探寻一下电子邮件的工作原理。那么首先我们得明确一下电子邮件是什么。

电子邮件(E-mail)是什么?

电子邮件,又经常被称为E-mail/邮件, 其英文的全称是Electronic mail。最早在1960年代出现,并于70年代中叶形成了现在的email的结构。

Electronic mail (email or e-mail) is a method of exchanging messages (“mail”) between people using electronic devices. Invented by Ray Tomlinson, email first entered limited use in the 1960s and by the mid-1970s had taken the form now recognized as email
Refer - [https://en.wikipedia.org/wiki/Email]

相关的通信协议

我们都知道电子邮件是为了发送消息从一端电子邮箱用户给另一端的电子邮箱用户,中间需要通过网络传输数据。所以不可避免地要为通信制定协议。而在邮件的传输和接收过程中,有3个常用协议。1

  • SMTP (Simple Mail Transfer Protocol)
  • POP (Post Office Protocol)
  • IMAP (Internet Mail Access Protocol)

SMTP

SMTP,Simple Mail Transfer Protocol,中译为“简单邮件传输协议”。
就如同其名字,是用于传输邮件从一台机器到另一到机器。
比如我们的Email Client到Email Server,Email Server到Email Server等,机器见发送邮件内容的时候,会使用这个协议。

POP & IMAP

POP和IMAP这两个协议被用于接收邮件。属于竞争关系,通常使用其中的一个。那么我们来看一下这两个协议的内容和区别吧。

POP

POP,Post Office Protocol,中译为“邮局协议”。
使用该协议呢,就像现实生活中去邮局取邮件,一旦邮件被取走,邮局将不再持有该邮件。那么我们的”电子邮局“(Mail Server)也一样,使用POP协议的时候,一旦邮件被下载,那么服务器上对应邮件将会被删除。
这对于小容量的邮件服务器来说是很友好的。
POP系列中,POP第三版(POP3)是最为常用的。

POP version 3 (POP3) is the version in common use.
Refer [https://en.wikipedia.org/wiki/Post_Office_Protocol]

IMAP

IMAP,Internet Message Access Protocol,中译:“因特网信息访问协议”。旧称(Interactive Mail Access Protocol),是斯坦福大学在1986年开发的一种邮件获取协议。IMAP的Specification见RFC3501
当初开发这个协议的时候,目的是为同一个用户的复数个Email Clients提供完整的访问控制,因此服务器会一直保留邮件直到被某一个Client显式地删除。

IMAP was designed with the goal of permitting complete management of an email box by multiple email clients, therefore clients generally leave messages on the server until the user explicitly deletes them
Refer [https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol]

IMAP 和 POP的区别?

根据上面的描述,我们可以看到采用POP协议会使服务器上的邮件在被下载(取走)之后被删除,而IMAP则不会。
IMAP服务器的邮件数据会被一直保存直到被显式删除。这使得IMAP服务器更适合作为中心服务器为不同的邮件客户端提供邮件数据。
通常,主流的邮件服务提供商如Gmail、Microsoft Outlook等,都对两种协议同时提供支持。

电子邮件如何工作的?

以上,我们了解了邮件传输过程中常用的3种协议。接下来我们整理一下电子邮件是如何从一方客户端一步一步到另一方客户端上被显示的。
Flow Of Sending An Email
上图是笔者用processon在线画图工具和Iconfont素材库临时搞的一张图,将就看一下。

可以认为,当客户端A点击发送邮件按钮之后,大概有6个步骤。

  1. 客户端A通过SMTP协议发送数据到对应的SMTP服务器。
  2. 这个SMTP服务器接收到发送邮件的请求后,会根据目标邮件地址的域名去DNS寻找对应邮件服务器的地址。
  3. 拿到对方服务器地址之后,再次通过SMTP协议发送邮件数据到对方SMTP服务器。
  4. 对方SMTP服务器接收到邮件数据之后存储起来。
  5. POP/IMAP服务器在持久层获取邮件内容。
  6. 另一个邮件客户端B通过POP/IMAP协议与服务器通信获取邮件内容。

结语

以上,就是一封邮件大致的传输流程。希望笔者和读者以后在选择和设置邮件服务器协议的时候,不再为设置何种协议发愁。


  1. 在3个常用协议之外,例如微软和苹果等都有自己的邮件通信协议,如微软的MAPI。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值