邮件发送功能总结
       

第一部分 背景
 
一、使用场景
(1)注册验证
   注册各大网站,通常需要输入邮件地址,在注册成功后,会发送一封邮箱验证的邮件,点击确认,证明这个邮箱是用户自己的
(2)网站营销
   公司运营做活动的时候,提前几天给用户发邮件,提醒老用户在活动时间参加活动。
(3)安全的最后一道防线
   一个网站好久不用的时候,会忘记密码,这个时候需要找回密码,很多种找回方式,最常用的找回方式就是通过邮箱找回密码。
首先,在网站输入邮箱,系统会根据注册的邮箱发送一封邮件,根据邮件中的地址,可以重新设置新的密码。
(4)提醒邮件告警
   如果系统没有监控,将是一种灾难性的事件,系统被实时的监控起来,出了问题,第一时间通知到开发人员,在事态没有扩散,影响最小的时候把问题解决掉。
(5)触发机制
   定时邮件的发送,计算机忘记关机,发送一个特殊的邮件,让计算机自动关机。
 
二、邮件发送原理
 
原理:需要将发送邮件者的邮件,发送到需要发送的接受者的邮箱中,发送过程中需要很多的发送协议。
(1)邮件传输协议:SMTP协议和POP3协议
    SMTP全称 Simple Mail Transfer Protocol,即简单邮件传输协议.一种从源地址到目的地址,邮件传输的规范,通过它控制邮件的中转方式,特点是能在传送中,接力传送邮件,即邮件可以通过不同网络上的主机接力式的传送,SMTP主要负责底层邮件系统如何将邮件从一台服务器传送到另一台机器.
   POP3全称Post Office Protocol,即邮局协议的第三个版本,它规定了怎么将个人计算机连接到Internet服务器和下载电子邮件的电子协议,它也是因特网电子邮件第一个临宪协议标准.POP3允许用户从服务器上把邮件存储到本地主机,同时,删除保存在邮件服务器上的邮件.
(2)内容不断发展:IMAP协议和Mime协议
   IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它和POP3协议类似,也是邮件访问的标准之一,它和POP3不同的是,它在电子邮件客户端收取的邮件,仍然保存在服务器上,同时在客户端上的操作,都会反馈到服务器上,如在客户端上删除一个邮件,或者标记了邮件已读,那么服务器上的邮件也会相应更改其动作,因此不论从浏览器登录邮箱,还是从客户软件登录邮箱,看到的邮件的状态都是一样的,IMAP协议是对POP3协议的补充.
   MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。SMTP早期是基于ASCII字符文本的,在二进制文本处理上,并不是很好,后来又开发了编码二进制文本,比如MIME,其通过SMTP来传输,所以当今SMTP都支持八位的MIME扩展,它是二进制的传输变得几乎和传文本传输一样简单.
 
三、邮件发送流程
流程概述:
  首先发信人在用户代理上,编辑邮件,写清发件人的邮件地址.
  第二步,用户代理根据发件人编辑的信息,生成一封符合邮件格式的邮件.
  第三步,用户代理把邮件发送到发信人的邮件服务器上,邮件服务器上有一个缓冲队列,发送到邮件服务器的队列,都会进入缓冲队列中,等待邮件服务器上的SMTP客户端进行发送,发件人的邮件服务器是SMTP把这封邮件,发送到收件人的邮件服务器之中
  第五步,收件人的邮件服务器接收邮件之后,把这封邮件放到收件人的邮件服务器的信箱中.
  最后,收件人使用收件代理来收取邮件,
收取方式:用户代理使用POP3来连接收件人所在邮件服务器,之后验证成功之后,用户代理就会把邮件服务器上的邮件读取起来,并且展示给收件人
总结:
  发件人通过发件人的邮件服务器将邮件发送到发送人的DMS服务器中,通过SMTP不断的查询DNS来从一个服务器到另一个服务器,最后传送到收件人的邮箱服务器,收件人通过POP3将邮件下载到本地进行查看.

IntelliJ IDEA 2017版 spring-boot 2.0.3 邮件发送搭建,概念梳理 (一)的更多相关文章

  1. IntelliJ IDEA 2017版 spring-boot 2.0.3 邮件发送搭建,概念梳理 (二)

    第二部分 邮件发送历史   一.第一封邮件   1.1969年10月,世界上的第一封电子邮件    1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短 ...

  2. Spring Boot 2.0 版的开源项目云收藏来了!

    给大家聊一聊云收藏从 Spring Boot 1.0 升级到 2.0 所踩的坑 先给大家晒一下云收藏的几个数据,作为一个 Spring Boot 的开源项目(https://github.com/cl ...

  3. Spring Boot 2.0 Intellij Idea 中图文详解打包成可执行Jar

    我们使用Spring Boot 2.0 创建好我们的项目后,我们一般需要打包,然后部署到服务器上. 打包步骤: 1. 选中项目,右键——> Open Module Settings. 2. 切换 ...

  4. Spring Boot 2.0正式发布,新特性解读

    作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中 ...

  5. Spring Boot 2.0 的快速入门(图文教程)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! Spring Boot 2.0 的快速入门(图文教程) 大家都 ...

  6. Spring Boot 2.0 入门指南

    0x01 什么是Spring Boot? Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的“接班人”,和微服务紧密联系在一起. 0x02 ...

  7. Spring Boot 2.0 返回JSP页面实战

    1. 模板引擎JSP的限制 在开始之前呢,我觉得我们有必要先去了解下 Spring Boot 2.0 官方文档中提到的如下内容: 模板引擎 除了REST Web服务之外,还可以使用Spring MVC ...

  8. Spring Boot 2.0 热部署指南

    Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功 ...

  9. spring boot 2.0.3+spring cloud (Finchley)7、服务链路追踪Spring Cloud Sleuth

    参考:Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] Spring Cloud Sleuth 是Spring Cloud的一个组件,主要功能是 ...

随机推荐

  1. Cisco VSS

    1.原理 VSS是将两台及以上的物理设备虚拟成逻辑上的一台,可类比堆叠.VSS在控制层面上两个交换机有主从之分,但在数据面上处理是双活的.无论是从网络控制层面和管理视图上在网络上都是一个单独的设备实体 ...

  2. bbs项目中的零碎点记录

    一.切换django的语言 在settings中修改django默认的语言 # LANGUAGE_CODE = 'en-us' # 切换django的语言,默认是英语的,我们把他修改为中文 LANGU ...

  3. java 动手动脑解决问题

    1.Java的基本运行单位是类还是方法?是类,因为没有方法可以独立存在,方法在逻辑上属于类或属于对象. 2.类的组成成员?成员变量,成员方法. 3.成员变量的种类? byte short int lo ...

  4. windows7 Cygwin 下安装 YouCompleteMe 插件

    原创文章,欢迎指正!转载请注明~ 从上周就开始想在cygwin上安装YouCompleteMe插件,按照GITHUB上的官方教程安装,由于自己的理解失误,一直搞不清是按照在windows上安装还是按照 ...

  5. SqlServer2014导出数据库的数据字典-最新版本(字段说明也能导出)

    --移动360导出数据字典 -- --快速查看表结构(比较全面的) THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号 , col.name AS ...

  6. 10.23JS日记

    1.逻辑运算 ||  &&  ! ||:遇到第一个为true的值就中止并返回 &&:遇到第一个为false的值就中止并返回,如果没有false值,就返回最后一个不是fa ...

  7. PAT 1063 计算谱半径(20)(代码)

    1063 计算谱半径(20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a​1​​+b​1​​i,⋯,a​n​​+ ...

  8. snort帮助文档

    [1] CentOS6.6下基于snort+barnyard2+base的入侵检测系统的搭建 2 基于Snort的C_S模式的IDS的设计与应用_王会霞.caj [3] Snort 笔记1 - 3种模 ...

  9. 看懂 Fiddler 的瀑布图

    最近准备给组内的新同学们分享下 Fiddler 这枚神器,可以讲的地方太多,我打算把一节课讲不完的内容写在博客上,大家可以随便看看.今天先介绍下 Fiddler 的瀑布图. 每个网络请求都会经历域名解 ...

  10. UI设计:C4D作品案例分享

    中文名4D电影,外文名CINEMA 4D,研发公司为德国Maxon Computer,特点为极高的运算速度和强大的渲染插件,使用在电影<毁灭战士>.<阿凡达>中,获得贸易展中最 ...