SMTP、POP3和IMAP邮件协议
目录
今天入职第一天,公司让配置个人的内网、外网邮箱,这可把我给搞晕了,本来以前就对邮箱这块不是很了解,平时也不怎么用邮箱,顶多有个QQ邮箱而已。今天,趁着配置公司的个人内外网邮箱,查了下资料,梳理了一下这三种协议的区别。
首先,SMTP、POP和IMAP都是与邮件有关的协议。SMTP主要是负责传送邮件,而POP和IMAP是负责接收邮件。
SMTP
SMTP (Simple Mail Transfer Protocol),即简单邮件传输协议,默认端口是25,通过SSL协议加密之后的默认端口是465。它是用于从源地址到目的地址传输邮件的协议,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP是一个 “推” 的协议,它不允许根据需要从远程服务器上 “拉” 来消息。
SMTP 认证:简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
SMTP 服务器就是装有 SMTP 协议的服务器。
POP
POP(Post Office Protocol)邮局通讯协议,POP是互联网上的一种通讯协议,主要功能是用在接收电子邮件时。当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,是TCP/IP协议族中的一员,默认端口是110,通过SSL协议加密之后的默认端口是995。POP3协议主要用于支持使用客户端远程管理在服务器上的电子邮件。它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,但是对邮件的操作并不会反馈到邮箱服务器上。
POP3服务器就是装有POP3协议的服务器。
IMAP
IMAP (Internet Mail Access Protocol),即交互式邮件存取协议,是一个应用层协议,默认端口是143,通过SSL协议加密之后的默认端口是993。用来从本地邮件客户端,如Outlook Express、Foxmail、Mozilla Thunderbird等访问远程服务器上的邮件。它和POP3类似邮件访问标准协议类似。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。也就是说,IMAP提供了比POP3更为强大的功能。IMAP服务器就是装有IMAP协议的服务器。
总结
其实,SMTP、POP3和IMAP协议就和HTTP、DNS等其他协议类似。只不过是为了实现某个功能而设计的一组规范而已,而装有这些协议的服务器就可以称为该协议的服务器。比如,一台服务器同时装有SMTP、POP3、HTTP协议,那么,它既可以称为SMTP服务器,也可以称为POP3服务器,同时还可以称为HTTP服务器。因为,它同时提供了这些功能。
一般情况下,小型的提供邮件服务的网站,他们的邮件服务器同时提供了SMTP、POP3和IMAP的功能。但是对于大型的提供邮件服务的网站,他们的SMTP服务器和POP3服务器以及IMAP服务器都是分开的。
当我们给其他人发送电子邮件时,我们需要写我们的邮件地址和对方的邮件地址,那么现在有下面两种情况:
- 当对方和我们属于同一个域时,也就是当我们是QQ邮箱,对方也是QQ邮箱。这样,我们把邮件给了我们的SMTP服务器,然后SMTP服务器只需要转给本地的POP3服务器即可。
- 当对方和我们不属于同一个域时,也就是当我们是QQ邮箱,而对方是163邮箱的话。我们把邮件给了我们的SMTP服务器,然后我们的SMTP服务器通过查询DNS得到对方邮箱的POP3服务器,然后将邮件通过SMTP协议传送给对方的POP3服务器或IMAP服务器。
那么,对方是如何接受我们的电子邮件的呢?也有下面两种情况:
- 当对方使用的是POP3协议的话,他可以使用邮件客户端对邮件进行接收以及操作。比如移动该邮件,删除该邮件,标记该邮件为已读,但是这些操作并不会反馈到邮箱服务器上。也就是说,你在本地对邮件进行的操作和邮箱服务器是不同步的。
- 当对方使用的是IMAP协议的话,IMAP提供邮件服务器与邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的任何操作,服务器上的邮件也会做相应的动作。也就是说,你在本地对邮件进行的操作和邮箱服务器是同步的。
DNS记录中的MX记录
我们都知道,在DNS解析记录中有一个MX记录。那么,这个记录是用来干嘛的呢?


现在假如我们是使用的QQ邮箱。 xx@qq.com ,对方使用的是163邮箱,test@163.com。那么,现在我们要发送邮件给对方。我们使用QQ邮箱网页端发送,该操作同步到了qq这个域的SMTP服务器上,然后SMTP服务器查看目标邮箱地址不和qq.com属于一个域。于是查询DNS记录,一步一步查到了163这个域上。最终,将邮件发送给查询到的163这个域的邮件服务器。
MX记录的权重对邮箱服务是很重要的,当发送邮件时,邮箱服务器先对域名进行解析,查找 MX 记录。先找权重数最小的服务器(比如说是 10),如果能连通,那么就将发送过去;如果无法连通 MX 记录为 10 的服务器,那么才将邮件发送到权重为 20 的邮箱服务器上。这里有一个重要的概念,权重 20 的服务器在配置上只是暂时缓存邮件,当权重 20 的服务器能连通权重为 10 的服务器时,仍会将邮件发送到权重为 10 的邮件服务器上。当然,这个机制需要在邮件服务器上配置。
一般,大型的邮件服务提供商都有好几个邮件服务器 。
SMTP、POP3和IMAP邮件协议的更多相关文章
- centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课
centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 ...
- Linux C SMTP POP3 极简陋邮件客户端
以前以为协议非常高神,但做了这个之后发现还好,没想象的那么艰难. 先要了解邮件的原理 再者就是上面2协议 可以先用telnet测试一下,以初步了解那2协议:http://hi.baidu.com/34 ...
- 邮件协议POP3/IMAP/SMTP服务的区别
2016年09月09日 09時51分 wanglinqiang整理 通过网上查找的资料和自己的总结完成了下面的文章,看完之后相信大家对这三种协议会有更深入的理解.如有错误的地方望指正. POP3 PO ...
- 理解邮件传输协议(SMTP、POP3、IMAP、MIME)
http://blog.csdn.net/xyang81/article/details/7672745 电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则 ...
- POP3、IMAP、SMTP邮件协议的理解
一个热爱技术的菜鸟...用点滴的积累铸就明日的达人 CSDN博客链接: http://blog.csdn.net/my_confesser 正文 今天入职配置OutLook的时候,看到公司的 ...
- 邮箱基础协议:SMTP/POP3/IMAP
目录 电子邮件的组成:信封.首部和正文 邮件基础协议 SMTP SMTP 指令 使用 Telnet 模拟 SMTP 发送邮件 POP3 POP3 的生命周期 IMAP 标志消息属性 状态和流程图 IM ...
- Android pop3与imap方式接收邮件(javamail)
需要下载3个jar包:mail.jar/ activation.jar/ additionnal.jar 1.pop3 /** * 以pop3方式读取邮件,此方法不能读取邮件是否为已读,已 ...
- Gmail,QMail,163邮箱的 IMAP/SMTP/POP3 地址
我们在客户端设置邮箱或者使用 PHPMailer 发送邮件的时候,我们都会去查找这些邮箱的 IMAP/SMTP/POP3 地址,这里就列出 Gmail, QMail, 163邮箱这三个常用邮箱的这些地 ...
- 你真的了解电子邮件系统的组成和结构吗?(SMTP、POP3、IMAP、MIME……)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105896201 学习课程:<2019王道考研计算机网络> 学习目的 ...
随机推荐
- 【免费开源】基于Vue和Quasar的crudapi前端SPA项目实战—环境搭建 (一)
背景介绍和环境搭建 背景 crudapi增删改查接口系统的后台Java API服务已经全部可用,需要一套后台管理UI,主要用户为开发人员或者对计算机有一定了解的工作人员,通过UI配置元数据和处理业务数 ...
- MySql数据库列表数据分页查询、全文检索API零代码实现
数据条件查询和分页 前面文档主要介绍了元数据配置,包括表单定义和表关系管理,以及表单数据的录入,本文主要介绍数据查询和分页在crudapi中的实现. 概要 数据查询API 数据查询主要是指按照输入条件 ...
- 那些你不知道的DOU+投放技巧,以及常见的审核失败原因丨国仁网络
作为小额付费投放工具,DOU+一直深受各大中小商家的青睐.虽然它的审核比较严格,但转化效果还是非常明显的. 近日,抖音发布重要公告:内容低质的视频将无法购买DOU+推广,并可能因违反平台规则导致无法观 ...
- python 操作符** (两个乘号就是乘方)
一个乘号*,如果操作数是两个数字,就是这两个数字相乘,如2*4,结果为8**两个乘号就是乘方.比如3**4,结果就是3的4次方,结果是81 *如果是字符串.列表.元组与一个整数N相乘,返回一个其所有元 ...
- Java volatile关键字详解
Java volatile关键字详解 volatile是java中的一个关键字,用于修饰变量.被此关键修饰的变量可以禁止对此变量操作的指令进行重排,还有保持内存的可见性. 简言之它的作用就是: 禁止指 ...
- Linux sed 使用笔记
sed 工具使用笔记 Linux中经常需要对一些超大的文本文件进行操作,例如 GB 级别的 CSV.TXT.LOG 文件,如果使用 vi 或者 vim 编辑器操作会非常慢且卡,此时 sed 工具或许可 ...
- ionic3 清除navpush的堆栈 (android真机返回键bug)
清除navpush的堆栈可以使用 方法一:ionic3文档 this.navCtrl.popToRoot(); //直接返回根组件 方法二: push 后再删除之前页面即可. this.navCtrl ...
- 幻灯片放映模式切换windows terminal背景图片
目录 幻灯片放映模式切换windows terminal背景图片 脚本功能 开发需求 使用技术 操作说明 使用示例 查看帮助 输入参数使用 脚本详情 引用参考 幻灯片放映模式切换windows ter ...
- PYTHON工业互联网应用实战12—客户端操作
本章节我们将实现与admin里类似的列操作"下达"功能,演示客户端是如何实现操作功能,同时,演示也会强调一点,何时合并你的功能代码,避免相同功能使用不同的代码段来实现,在企业开发中 ...
- XSS-change通关历程
Level1:没有过滤. <script>alert(1)</script> <svg/onload=alert(1)> <script>confirm ...