邮件协议POP3/IMAP/SMTP介绍

一、邮件发送、收取过程

图示的六个步骤分别进行如下的说明:

  ①、用户A的电子邮箱为:xx@qq.com,通过邮件客户端软件写好一封邮件,交到QQ的邮件服务器,这一步使用的协议是SMTP,对应图示的①;

  ②、QQ邮箱会根据用户A发送的邮件进行解析,也就是根据收件地址判断是否是自己管辖的账户,如果收件地址也是QQ邮箱,那么会直接存放到自己的存储空间。这里我们假设收件地址不是QQ邮箱,而是163邮箱,那么QQ邮箱就会将邮件转发到163邮箱服务器,转发使用的协议也是SMTP,对应图示的②;

  ③、163邮箱服务器接收到QQ邮箱转发过来的邮件,也会判断收件地址是否是自己,发现是自己的账户,那么就会将QQ邮箱转发过来的邮件存放到自己的内部存储空间,对应图示的③;

  ④、用户A将邮件发送了之后,就会通知用户B去指定的邮箱收取邮件。用户B会通过邮件客户端软件先向163邮箱服务器请求,要求收取自己的邮件,对应图示的④;

  ⑤、163邮箱服务器收到用户B的请求后,会从自己的存储空间中取出B未收取的邮件,对应图示⑤;

  ⑥、163邮箱服务器取出用户B未收取的邮件后,将邮件发给用户B,对应图示的⑥;最后三步用户B收取邮件的过程,使用的协议是POP3;

  上面的步骤可能大家不太明白,这里面出现了很多名词,比如邮件客户端软件,邮件服务器,SMTP和POP3协议(邮件传输协议)等等。不明白没关系,接下来我们来详细介绍这些名词

1、基本概念:

  • SMTP邮件服务器:用户替用户发送邮件和接收外面发送给本地用户的邮件,对应上图的第一、二步。它相当于现实生活中邮局的邮件接收部门(可接收普通用户要投出的邮件和其他邮局投递进来的邮件)。
  • POP3/IMAP邮件服务器:用户帮助用户读取SMTP邮件服务器接收进来的邮件,对应上图的第六步。它相当于专门为前来取包裹的用户提供服务的部门。

2、协议:

1)三个协议:

  1. SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议,属于 TCP/IP 协议簇(默认端口25)。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。SMTP是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。
  2. POP3协议:全称为 Post Office Protocol,是TCP/IP协议族中的一员(默认端口是110),它定义了邮件客户端软件和POP3邮件服务器的通信规则,主要用于支持使用客户端远程管理在服务器上的电子邮件。
  3. IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,是一个应用层协议(端口是143),它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则,主要用来从本地邮件客户端(Outlook Express、Foxmail、Mozilla Thunderbird等)访问远程服务器上的邮件。

2)POP3和IMAP区别:

IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP和POP3是邮件访问最为普遍的Internet标准协议。不同的是:

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

3)配置:

根据上面可以知道:IMAP协议是用来接收邮件用的,使用IMAP还可以同步客户端和服务器之间的操作。SMTP都是用来发送邮件的时候用的,上面也提到,SMTP是一种“推”的协议,不允许从服务器“拿”消息。

4)常用邮箱的首发服务器:

网易邮箱支持POP3/SMTP/IMAP服务,可以通过电脑客户端软件更好地收发邮件,网易邮箱已经默认开启POP3/SMTP/IMAP服务。QQ邮箱和Gmail邮箱内的「POP3/SMTP服务」和「IMAP/SMTP服务」一般都是关闭的,需要您手动开启。

  • 新浪免费邮箱发信(smtp)服务器的地址为:smtp.sina.com
  • 新浪免费邮箱收信(pop3)服务器的地址为:pop.sina.com

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,客户与服务器应用之间的通信不被攻击者窃听。
如果您的电子邮件客户端支持SSL,可以在设置中选择使用SSL。当选择了使用SSL协议时,需要修改相应的服务器端口号。QQ邮箱使用SSL的通用配置如下:

  • 接收邮件服务器:pop.qq.com,使用SSL,端口号995
  • 发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587

国内外主要邮箱的POP3/SMTP/IMAP的客户端设置,POP3是指接收邮件的服务器。有的邮件服务是POP3,而有的叫POP。不同邮箱,各自的POP服务器地址也是不同的。

  • QQ邮箱 POP3:pop.qq.com SMTP:smtp.qq.com IMAP:imap.qq.com 端口:143
  • Foxmail POP3:pop.foxmail.com SMTP:smtp.foxmail.com
  • 移动139邮箱 POP3:pop.139.com SMTP:smtp.139.com
  • 天翼189邮箱 POP3:pop.189.cn SMTP:smtp.189.cn
  • 163邮箱 POP3:pop.163.com SMTP:smtp.163.com
  • 163Vip邮箱 POP3:pop.vip.163.com SMTP:smtp.vip.163.com
  • 126邮箱 POP3:pop3.126.com SMTP:smtp.126.com
  • Gmail POP3:pop.gmail.com SMTP:smtp.gmail.com IMAP:imap.gmail.com 端口:995 465 993
  • Yahoo邮箱 POP3:pop.mail.yahoo.com SMTP:smtp.mail.yahoo.com
  • Hotmail POP3:pop3.live.com SMTP:smtp.live.com 端口:995
  • Sogou邮箱 POP3:pop3.mail.sogou.com SMTP:smtp.mail.sogou.com

二、使用Smtp协议手工发送邮件

SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。SMTP协议的通信双方采用一问一答的命令/响应形式进行对话,SMTP协议分为标准SMTP协议和扩展SMTP协议,标准SMTP协议是1982年在RFC821 文档中定义的,而扩展SMTP协议是1995年在RFC1869 文档中定义的。扩展SMTP协议在标准 SMTP协议基础上的改动非常小,主要增加了邮件安全方面的认证功能,现在我们说的SMTP协议基本上都是扩展SMTP协议。RFC1869文档参考如下:https://tools.ietf.org/html/rfc1869

SMTP 协议中一共定义了18条命令,但是发送一封电子邮件的过程通常只需6条命令,语法格式总结如下:

大家可能光看这些命令不太清楚,下面我总结了一下使用Smtp协议手工发送邮件的步骤:

①、和SMTP服务器建立连接,telnet smtp.163.com 25。这条命令是和163邮箱建立连接,如果是和QQ,那么将163换成qq即可,同理别的邮箱也是一样。后面的数字25表示SMTP服务器的端口号。
②、ehlo 发件人用户名。这没什么好说的,就是告诉SMTP服务器发送者的用户名。
③、选择登录认证方式,一般我们在第二步执行完后,会提示有几种认证方式,我们一般选择的是login。即输入命令:auth login
④、分别输入经过Base64加密后的用户名和密码。注意必须是要经过 Base64加密后的用户名和密码,大家可以网上在线转,也可以用后面给的代码进行转换。
⑤、指明邮件的发送人和收件人
  mail from:<xxx@163.com>
  rcpt to:<xxx@qq.com>
⑥、输入data命令,然后编写要发送的邮件内容,邮件的编写格式规则如下:
    第一步:输入data
    第二步:输入邮件内容 

from:<xxx@163.com>    ----邮件头发件人地址
to:<xxx@qq.com>       ----邮件头收件人地址
subject:hello world    ----邮件头主题
               -----空行
This is the first email sent by hand using the SMTP protocol  ----邮件的具体内容

⑦、输入“.”表示邮件内容输入完毕
⑧、输入quit命令断开与邮件服务器的连接
下面我用动图的形式给大家展示用Smtp协议手工发送邮件的前面三个步骤:

   上面我执行到第4步,剩下的步骤我就直接截图了:

三、3、使用POP3协议手工接收邮件

邮件服务商专门为每个用户申请的电子邮箱提供了专门的存储空间,SMTP 服务器将接收到的邮件保存到相应用户的存储空间。用户要从邮件服务提供商提供的电子邮箱中获取自己的电子邮件,那么就需要POP3 邮件服务器来完成。

POP3协议:全称为 Post Office Protocol,它定义了邮件客户端程序和POP3邮件服务器的通信规则。相关命令如下:

下面我们演示用POP3协议手工接收邮件:

第一步:用telnet 连接POP3的163邮箱服务器

接下来收取邮件:

参考:https://www.cnblogs.com/ysocean/p/7653252.html

  • 11
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值