相信大家在日常工作生活中少不了和邮件打交道,比如我们会用邮件进行信息交流,向上级汇报日常工作;再比如大家熟悉的某个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协议接收邮件!
原文链接:http://www.cnblogs.com/ysocean/p/7652934.html