相信大家在日常工作生活中少不了和邮件打交道,比如我们会用邮件进行信息交流,向上级汇报日常工作;再比如大家熟悉的某个WEB系统注册阶段,通常会有一个功能,点击发送到目标邮箱的链接完成账户激活。但是邮件发送的原理是什么?邮件是如何发送的呢?本系列教程将会讲解邮件的基本常识与概念,邮件的协议以及邮件服务器的工作原理,然后用JavaMail 发送邮件的基本实现过程,邮件内嵌图片等高级邮件技巧。相信大家看完后,一定会有所收获。

1、电子邮件的发送和接收过程

  和以往博客一样,LZ这里先给出用户A从QQ邮箱发送邮件到用户B163邮箱的图示,然后对图示的过程进行详细的介绍:

  

  图示的六个步骤分别进行如下的说明:

  ①、用户A的电子邮箱为:xx@qq.com,通过邮件客户端软件写好一封邮件,交到QQ的邮件服务器,这一步使用的协议是SMTP,对应图示的①;

  ②、QQ邮箱会根据用户A发送的邮件进行解析,也就是根据收件地址判断是否是自己管辖的账户,如果收件地址也是QQ邮箱,那么会直接存放到自己的存储空间。这里我们假设收件地址不是QQ邮箱,而是163邮箱,那么QQ邮箱就会将邮件转发到163邮箱服务器,转发使用的协议也是SMTP,对应图示的②;

  ③、163邮箱服务器接收到QQ邮箱转发过来的邮件,也会判断收件地址是否是自己,发现是自己的账户,那么就会将QQ邮箱转发过来的邮件存放到自己的内部存储空间,对应图示的③;

  ④、用户A将邮件发送了之后,就会通知用户B去指定的邮箱收取邮件。用户B会通过邮件客户端软件先向163邮箱服务器请求,要求收取自己的邮件,对应图示的④;

  ⑤、163邮箱服务器收到用户B的请求后,会从自己的存储空间中取出B未收取的邮件,对应图示⑤;

  ⑥、163邮箱服务器取出用户B未收取的邮件后,将邮件发给用户B,对应图示的⑥;最后三步用户B收取邮件的过程,使用的协议是POP3;

  上面的步骤可能大家不太明白,这里面出现了很多名词,比如邮件客户端软件,邮件服务器,SMTP和POP3协议(邮件传输协议)等等。不明白没关系,接下来我们来详细介绍这些名词。

1、邮件服务器

  图示出现了两个邮件服务器,QQ和163邮件服务器。用户想要在网上收发邮件,必须要有专门的邮件服务器。邮件服务器我们可以假想为现实生活中的邮局。

  如果按功能划分,邮件服务器可以划分为两种类型:

  ①、SMTP邮件服务器:用户替用户发送邮件和接收外面发送给本地用户的邮件,对应上图的第一、二步。它相当于现实生活中邮局的邮件接收部门(可接收普通用户要投出的邮件和其他邮局投递进来的邮件)。

  ②、POP3/IMAP邮件服务器:用户帮助用户读取SMTP邮件服务器接收进来的邮件,对应上图的第六步。它相当于专门为前来取包裹的用户提供服务的部门。

2、电子邮箱

  电子邮箱也称为E-mail地址,比如用户A的xx@qq.com,和用户B的xx@163.com。用户能通过E-mail地址标识自己发送的电子邮件,同时也可以通过这个地址接收别人发来的电子邮件。电子邮箱需要到邮件服务器进行申请,也就是说,电子邮箱其实就是用户在邮件服务器上申请的账户。邮件服务器会把接收到的邮件保存到为该账户所分配的邮箱空间中,用户通过用户名密码登录到邮件服务器查收该地址已经收到的邮件。一般来讲,邮件服务器为用户分配的邮箱空间是有限的。

3、邮件客户端软件

  我们可以直接在网站上进行邮件收发,也可以用邮件客户端软件。比如常见的FoxMail,Outlook Express。邮件客户端软件通常集邮件撰写,发送和收发功能于一体,主要用于帮助用户将邮件发送给SMTP邮件服务器和从POP3/IMAP邮件服务器读取用户的电子邮件。

4、邮件传输协议

  电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行邮件传递,那就必须要遵守一定的规则,这个规则就是邮件传输协议。下面我们分别简单介绍几种协议(后面会详细讲解):

  ①、SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。

  ②、POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则。

  ③、IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则。

  我们说所有的邮件服务器和邮件客户端软件程序都是基于上面的协议编写的。

5、总结  

  本篇博客我们给出了电子邮件发送和接收的图示讲解,以及对于邮件服务器、邮件客户端软件、邮件传输协议的简单介绍。下一篇博客我们将重点讲解邮件的传输协议,并手动通过SMTP协议发送邮件,POP3协议接收邮件!

邮件实现详解(一)------邮件发送的基本过程与概念相关推荐

  1. 邮件服务器详解_邮件协议说明

    这是目录 什么是电子邮件? 什么是电子邮件服务器? 邮件应用协议 简述发送过程 什么是电子邮件? 电子邮件是-种用电子手段提供信息交换的通信方式,是互联网应用最广的服务. 通过网络的电子邮件系统,用户 ...

  2. 张孝祥java邮件开发_张孝祥java邮件开发详解笔记(生成文本邮件)

    package zxx.createMessage; import java.io.FileOutputStream; import java.util.Date; import java.util. ...

  3. DDR3内存详解,存储器结构+时序+初始化过程

    转载 DDR3内存详解,存储器结构+时序+初始化过程 2017-06-17 16:10:33 a_chinese_man 阅读数 23423更多 分类专栏: 硬件开发基础 转自:http://www. ...

  4. Spotify敏捷模式详解三部曲第二篇:研发过程

    本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...

  5. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  6. 网页访问服务器默认什么端口号,URL中没有端口号默认为80?详解IT产品必须熟知的访问地址概念!...

    原标题:URL中没有端口号默认为80?详解IT产品必须熟知的访问地址概念! 作为一个互联网产品经理,你可能每天打开几十个网页,但你有没有观察过他们的网址? 作者带你庖丁解牛并把网址拆开.标准URL地址 ...

  7. W601温湿度监测与邮件报警系统 — 源码详解(邮件报警模块)

    本项目中的邮件报警模块在用户在网页激活后会自动监测当前的温度,并且与用户设置的温度阈值做比较,一旦检测到当前温度超过用户设定的温度阈值,系统便会向用户所指定的邮箱发送一封报警邮件.当然,你也可以接入各 ...

  8. 邮件实现详解(三)------邮件的组织结构

    要想各种邮件处理程序能识别我们所写的电子邮件,能从我们所书写的电子邮件中分析和提取出发件人,收件人,邮件主题和邮件内容以及附件等信息,那么我们所写的电子邮件必须要遵循一定的格式要求,正如我们上一篇博客 ...

  9. python发邮件脚本详解_Python发送邮件脚本

    在一些场景中经常需要发送邮件, 像是持续集成和运维报警等. 而使用Python脚本能够很快捷方便得实现发送各种邮件的需求.这里就通过Python基于SMTP(Simple Mail Transfer ...

  10. Java发邮件(详解+源代码)

    Java发送邮件 一.邮件概述 (1)收发邮件 发邮件大家都会吧!发邮件是从客户端把邮件发送到邮件服务器,收邮件是把邮件服务器的邮件下载到客户端. 我们在163.126.QQ等网站注册的Email账户 ...

最新文章

  1. 生产指挥调度系统_市安全生产应急救援指挥中心将大型装载机械设备储备信息纳入应急指挥调度系统...
  2. 计算机网络控制系统,计算机网络远程控制系统的应用研究(原稿)
  3. 世界经济增速统一放缓,网络拓扑发现统一增速
  4. 针对SSL/TLS的拒绝服务攻击以及使用ettercap进行DNS欺骗
  5. python的标准库学习之__buitin__
  6. 大数据Hadoop之——数据仓库Hive
  7. 【Springboot整合ShardingSphere(ShardingJDBC)】扫盲文(并非代码实战)
  8. 为什么MacBook连接不上阿里云服务器
  9. 我是一只程序猿,沪漂一整年。
  10. ENET库(可靠UDP)
  11. python的前端geany_新人学python必备——Geany配置方法
  12. Cosserat Rod 理论学习
  13. 如何让Ai帮数据分析师干活-工作1
  14. lenet 5 代码 matlab,LeNet5的一个MATLAB实现的代码解析(4)
  15. 用计算机弹出千本樱,原神风物之诗琴乐谱千本樱弹奏攻略
  16. 动态规划状态机模型:股票买卖I
  17. 【读书笔记】道德经第一章
  18. 合同法律风险管理 合同纠纷之合同有效
  19. usb-gadget
  20. Shell cut分割

热门文章

  1. 系统学习机器学习之组合多分类器
  2. Day16_IO框架1(File类, IO流, 字节流字符流, IO异常, Properties)
  3. Android ViewModel与LiveData组件组合使用详解
  4. Apache Tomcat 文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)
  5. Apache Tomcat AJP 文件包含漏洞复现(CVE-2020-10487)
  6. 软件工程——软件的系统设计
  7. ssm毕设项目基于框架的动漫网站设计与实现q6dcx(java+VUE+Mybatis+Maven+Mysql+sprnig)
  8. 入侵检测:User-Agent
  9. 外汇EA真的有用吗?外汇EA如何设置
  10. 运筹学4个人完成三项工作_【用人话讲运筹学】十一、指派问题