目录

SMTP

POP

IMAP

总结

DNS记录中的MX记录


今天入职第一天,公司让配置个人的内网、外网邮箱,这可把我给搞晕了,本来以前就对邮箱这块不是很了解,平时也不怎么用邮箱,顶多有个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邮件协议的更多相关文章

  1. centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课

    centos   邮件服务  腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25  收邮件协议:pop3 端口110  iredmail安装配置 ...

  2. Linux C SMTP POP3 极简陋邮件客户端

    以前以为协议非常高神,但做了这个之后发现还好,没想象的那么艰难. 先要了解邮件的原理 再者就是上面2协议 可以先用telnet测试一下,以初步了解那2协议:http://hi.baidu.com/34 ...

  3. 邮件协议POP3/IMAP/SMTP服务的区别

    2016年09月09日 09時51分 wanglinqiang整理 通过网上查找的资料和自己的总结完成了下面的文章,看完之后相信大家对这三种协议会有更深入的理解.如有错误的地方望指正. POP3 PO ...

  4. 理解邮件传输协议(SMTP、POP3、IMAP、MIME)

    http://blog.csdn.net/xyang81/article/details/7672745 电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则 ...

  5. POP3、IMAP、SMTP邮件协议的理解

    一个热爱技术的菜鸟...用点滴的积累铸就明日的达人 CSDN博客链接: http://blog.csdn.net/my_confesser    正文   今天入职配置OutLook的时候,看到公司的 ...

  6. 邮箱基础协议:SMTP/POP3/IMAP

    目录 电子邮件的组成:信封.首部和正文 邮件基础协议 SMTP SMTP 指令 使用 Telnet 模拟 SMTP 发送邮件 POP3 POP3 的生命周期 IMAP 标志消息属性 状态和流程图 IM ...

  7. Android pop3与imap方式接收邮件(javamail)

    需要下载3个jar包:mail.jar/    activation.jar/    additionnal.jar 1.pop3 /** * 以pop3方式读取邮件,此方法不能读取邮件是否为已读,已 ...

  8. Gmail,QMail,163邮箱的 IMAP/SMTP/POP3 地址

    我们在客户端设置邮箱或者使用 PHPMailer 发送邮件的时候,我们都会去查找这些邮箱的 IMAP/SMTP/POP3 地址,这里就列出 Gmail, QMail, 163邮箱这三个常用邮箱的这些地 ...

  9. 你真的了解电子邮件系统的组成和结构吗?(SMTP、POP3、IMAP、MIME……)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105896201 学习课程:<2019王道考研计算机网络> 学习目的 ...

随机推荐

  1. PicGo 图床配置【工具篇】

    Github图床(舍弃) step1 下载PicGo 下载链接: https://github.com/Molunerfinn/picgo/releases step2 新建仓库作为上传图片的目标地址 ...

  2. Flink实时计算topN热榜

    TopN的常见应用场景,最热商品购买量,最高人气作者的阅读量等等. 1. 用到的知识点 Flink创建kafka数据源: 基于 EventTime 处理,如何指定 Watermark: Flink中的 ...

  3. git配置,以及简单的命令

    在 window 平台需要安装对应的客户端 git 配置全局用户名git config --global user.name "xxx"配置全局邮箱git config --glo ...

  4. Java标识符,关键字,保留字三者区分(主要是从官网摘抄)

    区分 标识符(Identifiers) An identifier is an unlimited-length sequence of Java letters and Java digits, t ...

  5. python基础学习之字符串的功能方法

    字符串:str的功能记录(该类需要记忆) .isdecimal():意思是判断是否由数字构成,仅仅可以解析"123" a='123'    d=a.isdecimal()    p ...

  6. 如何在 ASP.Net Core 中实现 健康检查

    健康检查 常用于判断一个应用程序能否对 request 请求进行响应,ASP.Net Core 2.2 中引入了 健康检查 中间件用于报告应用程序的健康状态. ASP.Net Core 中的 健康检查 ...

  7. P1008_三连击(JAVA语言)

    /*  * 题目描述 将1,2,⋯,9共9个数分成3组, 分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数. 输入输出格式 输入格式: 木有输入 输出格式: 若 ...

  8. 【JVM进阶之路】一:Java虚拟机概览

    1.Java简史 Java语言是一门通用的.面向对象的.支持并发的程序语言.全球从事Java相关开发的人员已经数以百万计. 从1995年"Java"正式出现以来,Java已经经历了 ...

  9. Elasticsearch扩展X-pack实施流程-实施

    Elasticsearch扩展X-PACK实施流程 elasticsearch5.2.1安装X-PACK,对ES集群进行监控,报警,安全验证,报告,图形化操作 注意 版本号需要固定,小版本都不能差,要 ...

  10. vscode(Visual Studio Code)中安装Debugger for Chrome插件调试页面

    最近换了下编辑器,改用vscode(Visual Studio Code),很喜欢它左边显示的文件路径,轻松新建文件夹和文件,也喜欢它的编码转换功能,gbk和utf-8可以随时切换,因为公司网站有些页 ...