一个热爱技术的菜鸟...用点滴的积累铸就明日的达人
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. 播放video

    <html> <head> <title> four in one vedio</title> <style type="text/cs ...

  2. iOS12、iOS11、iOS10、iOS9常见适配

    作者:花丶满楼 链接:https://juejin.im/post/5c49a7d0518825254e4d46fc 一.iOS12(Xcode10) 1.1.升级Xcode10后项目报错 不允许多个 ...

  3. 【AtCoder】ARC082 F - Sandglass

    [链接]F - Sandglass [题意]给定沙漏A和B,分别装着a和X-a的沙子,开始时A在上B在下,每秒漏1,漏完不再漏.给定n,有n个时刻ai沙漏倒转.给定m个询问,每次询问给定初值a和时刻t ...

  4. Web Application Vulnerabilities and Potential Problem Due to Bad Design

    web应用设计中不安全的设计及潜在的风险: REF: https://msdn.microsoft.com/en-us/library/ff648647.aspx

  5. js 函数分类2

    js 通用监听函数实现 // 把所有方法封装到一个对象里面,充分考虑兼容写法 var EventUtil = { // 添加DOM事件 addEvent: function(element, type ...

  6. 搭建Spring框架,实现添加数据到数据库

    原创链接:http://www.cnblogs.com/yanqin/p/5284400.html (允许转载,但请注明原创链接) 1.在myeclipse中建立一个web项目 项目名 :spring ...

  7. 一次Ubuntu下的排雷记录

    起因 某天,发现一台服务器上出现了一个大量占用cpu资源的进程.尝试手动杀掉,但很快就会自动重新创建新的进程. 追查 用命令lsof -p 10316 查看其文件路径: 该进程文件夹/proc/103 ...

  8. 【 总结 】crontab 使用脚本及直接获取HTTP状态码

    一.在crontab里面计划执行的脚本,所有的命令都要写出绝对路径.因为crontab的独立的进程,可能无法直接加载环境变量. 二.在判断网站能否正常访问一般的思路: 1. 判断网站是否能够正常打开. ...

  9. Selenium2+python自动化63-简易项目搭建【转载】

    前言 到unittest这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main.py脚本去控制执行所有的用例,并生成报告,发送邮件一系列的动作 一.新建工程 1.打开pycharm左上 ...

  10. 从事前端开发必须要了解的CSS原理

    从事Web前端开发的人都与CSS打交道很多,有的人也许不知道CSS是怎么去工作的,写出来的CSS浏览器是怎么样去解析的呢?当这个成为我们提高CSS水平的一个瓶颈时,是否应该多了解一下呢? 一.浏览器的 ...