一个热爱技术的菜鸟...用点滴的积累铸就明日的达人
CSDN博客链接: http://blog.csdn.net/my_confesser 
 
正文
 
  今天入职配置OutLook的时候,看到公司的教程建议使用POP3这种邮件传输协议,之后在熟悉公司的一个后台系统项目的时候,发现后台系统中的登录模块中使用了邮件的方式去验证用户的合法性。代码中使用SMTP协议去传输邮件,这两件事情让我感觉到有必要研究一下邮件传输协议。
  要说到邮件传输协议就不得不提POP3,也就是早上配置OutLook的时候,公司推荐使用的传输协议。经过网上查阅,得知这个POP3也就是邮局协议的第三个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议,它是因特网电子邮件的第一个离线协议标准。从名字上就可以知道这个协议的原理了,POP3就和我们用邮局送信是一样的,举个例子,假设我的一个朋友要给我发一封信件,那么他首先会将这个信件发送到邮局(邮件服务器),然后邮局将这封信件,手抄了一份给我了,之后将原本烧掉了,此时邮局已经没有这封信件了。公司推荐这种方式是因为POP3并不会因为邮件传输的数目增加导致邮件服务器磁盘占满(因为POP3这种方式在服务器上并不会保存邮件的原本)
  提到了POP3就不得不提IMAP(交互式邮件存储协议),IMAP与POP3的区别就是POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件,标记已读等),不能反馈到服务器上(因为服务器压根没有这个邮件),比如通过客户端收取了邮箱中的三封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的,而IMAP提供webmail与电子邮件客户端之间双向通信,客户端的操作都会反馈到服务器算上,对邮件进行的操作,服务器上的邮件也会做相应的动作。同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP更好的支持了从多个不同设备中随机访问新邮件。
  总之IMAP整体上为用户带来更为便捷和可靠的体验。POP3更易丢失邮件或多次下载相同的邮件,但凡事都有利弊,采取POP3的方式,我们可以不用过于担心邮件服务器因为邮件的爆满而导致故障。
不知道聪明的同学没有发现POP3和IMAP这两种传输协议,都是规定邮件服务器和接收方如何通信的一种协议,并没有涉及到发送方该如何将协议发送给邮件服务器的部分,那么发送方和邮件服务器之间究竟采取了什么协议呢?答案就是SMTP(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP还有一个认证,简单地说就是要求必须在提供账户名和密码之后才可以登录到SMTP服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加SMTP认证就是为了使得用户免于垃圾邮件的侵扰。
 
最后举个例子:当我们坐在电脑边用mail cline写完邮件,点击发送,这时mail cline会发送消息给邮件服务器上的SMTP service,这时候会有两种情况
  1、如果邮件的收信人和我处在一个domain,比如从163邮箱发送给另一个163邮箱,那么直接转给local的POP3 service即可
  2、如果收件人的和我并不处在一个domain,如果从163邮箱发送到sina邮箱,那么SMTP service会首先讯飞DNS,找到属于sina的SMTP service的host,sina 的 SMTP service接收到邮件之后会转给负责接收邮件的POP3 service。
 
由于本人知识浅薄,如果错误,请各位告知...
 
参考:
 

POP3、IMAP、SMTP邮件协议的理解的更多相关文章

  1. 常用电子邮件协议服务POP3/IMAP/SMTP/Exchange

    标题: 常用电子邮件协议服务POP3/IMAP/SMTP/Exchange 作者: 梦幻之心星 347369787@QQ.com 标签: [电子邮件, 服务, 协议] 目录: [客户端] 日期: 20 ...

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

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

  3. jmeter实现SMTP邮件协议压测

    实现目的 通过jmeter的SMTP取样器,调用SMTP协议,批量进行邮件的发送,已达到压测的目的. 脚本实现 User Defined Variables定义用户变量 编辑SMTP Sampler取 ...

  4. 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介

    一.发现问题 在测试邮件发送程序的时候,发送给自己的QQ邮箱,程序报错454 Authentication failed, please open smtp flag first. 二.解决问题 进入 ...

  5. laravel5.4 发送SMTP邮件

    https://blog.csdn.net/qq_35843527/article/details/77880631 Lumen / Laravel 5.4 使用网易邮箱 SMTP 发送邮件 获取网易 ...

  6. SMTP、POP3和IMAP邮件协议

    目录 SMTP POP IMAP 总结 DNS记录中的MX记录 今天入职第一天,公司让配置个人的内网.外网邮箱,这可把我给搞晕了,本来以前就对邮箱这块不是很了解,平时也不怎么用邮箱,顶多有个QQ邮箱而 ...

  7. [Email] 收发邮件的协议 : IMAP and SMTP , POP3 and SMTP

    支持 IMAP 和 SMTP 的应用 与仅同步收件箱的 POP 不同,IMAP 同步所有电子邮件文件夹. 在电子邮件应用中使用以下设置. 接收 (IMAP) 服务器 服务器地址:imap-mail.o ...

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

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

  9. 【转】POP3、SMTP和IMAP之间的区别和联系

    POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议.它是因特网电子邮件的第 ...

随机推荐

  1. npm获取配置值的两种方式

    命令行标记 在命令行上放置--foo bar设置foo配置参数为bar. 一个 -- 参数(argument)告诉cli解析器停止读取flags.一个 在命令行结尾的--flag参数(paramete ...

  2. 关于IE6的一些总结

    开篇之前,循例简单说说IE6的一些背景吧. IE6是指微软浏览器系列中的第六个版本,它是在2001年的时候伴随着XP系统的问世而同时推出的一款浏览器.因为XP普及的原因,这款浏览器一度问鼎全球浏览器市 ...

  3. 【uva11468-Substring】AC自动机+dp

    http://acm.hust.edu.cn/vjudge/problem/31655 题意:给定k个模板串,n个字符以及选择它的概率pro[i],要构造一个长度问L的字符串s,问s不包含任意一个模板 ...

  4. 转:java读取配置文件的几种方法

    转自: http://www.iteye.com/topic/56496 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小 ...

  5. 在另一个文本框显示input file选择的文件名字

    javascript 获取文件域 (type=file) 的完整路径一直是很麻烦的问题,问题主要出在一些浏览器基于安全性考虑而不能正常获取到文件域中选中图片的决对路径,尤其一些基于webkit的浏览器 ...

  6. Java 5大内存区域和对象的创建过程

    1.Java运行时数据区 方法区,堆线程共享.虚拟机栈,本地方法栈和程序计数器线程私有. 2.程序计数器(PC计数器) 占用较小的一块内存空间,当执行Java方法时记录正在执行的虚拟机字节码指令地址, ...

  7. Selenium2+python自动化61-Chrome浏览器(chromedriver)【转载】

    前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的. 一.Chrome遇到问题 1. ...

  8. KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机

    1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移,是将系统上所有软件包括操作系统完全复制到另一个物理机硬件机器上.虚拟化环境中的迁移, ...

  9. docker从零开始网络(三) overly(覆盖)网络

    使用overly网络 该overlay网络驱动程序会创建多个docker进程主机之间的分布式网络.该网络位于(覆盖)特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地进行通信.Dock ...

  10. django 分页django-pure-pagination(zz)

    虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination github地址https://github.com/jamespacileo/dja ...