目录

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. centos系统mysql忘记密码

    安装 mysql 之后,注意添加软连接 mysql 忘记密码操作, vim /etc/my.cnf 在 [mysqld] 的段中加上一句:skip-grant-tables 重启 mysql 服务, ...

  2. windows使用vscode设置免密登录linux服务器

    秘钥原理解释 id_rsa.pub是公钥,部署在服务器上 id_rsa是私钥,放在windows本地 本质上它们都是个文本文件 操作流程 生成秘钥对(windows和linux均可) ssh-keyg ...

  3. python2文件开头两行

    #!/usr/bin/python  或者  #!/usr/bin/env python 告诉操作系统python位置 # -*- coding:utf-8 -*- 设置文件编码为utf-8  (默认 ...

  4. 12、MyBatis教程之缓存

    13.缓存 简介 1.什么是缓存 [ Cache ]? 存在内存中的临时数据. 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高 ...

  5. 【分布式】SpringCloud(3)--Eureka服务注册与发现

    1.Eureka概述 1.1.什么是Eureka Eureka是Netflix的一个子模块.基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. 只需要使用服务的标识符,就可以访问到 ...

  6. C++并发与多线程学习笔记--单例设计模式、共享数据分析

    设计模式 共享数据分析 call_once 设计模式 开发程序中的一些特殊写法,这些写法和常规写法不一样,但是程序灵活,维护起来方便,别人接管起来,阅读代码的时候都会很痛苦.用设计模式理念写出来的代码 ...

  7. 运行ASP.NET程序(4)

    运行ASP.NET程序有两种方式: 直接点击如图标志的按钮可直接运行,还可以选择浏览器 第二种:F5 两者没区别,看个人习惯

  8. 整合一套高性能网关Kong

    前言 相信大家对Api网关都比较的熟悉,我们之前的文章也介绍过ASP.NET Core的网关Ocelot,也介绍过Spring Cloud Gateway.说到网关的主要功能,其实总结起来就两个字&q ...

  9. 02-MySQL主要配置文件

    一.二进制日志log-bin 作用:主从复制 二.错误日志 log-err 默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息 三.慢查询日志log 默认关闭,记录查询的sql语句,如果开启 ...

  10. 201871010203-陈鹏昱 实验二 个人项目—《D{0-1}KP问题》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 运用科学高效的方法学习软件工程的理论和知识 这个作业在哪些方面帮助我实现学习目标 掌握软件项目个人开发流程,掌握G ...