电子邮件
要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请。比如我们要使用QQ邮箱,就需要开通邮箱功能,在开通之后就会在邮件服务器上给用户开辟一小段空间用来存放邮件
邮件传输协议
在邮件收发中有两个重要的协议:
发送邮件:SMTP协议
我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。
接收邮件:POP3协议
我们通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。
这篇博客主要讲解的是邮件的发送,所以只需要讲SMTP协议
SMTP服务器地址:一般是smtp.xxx.com
,比如163邮箱是 smtp.163.com
,QQ邮箱是 smtp.qq.com
。
邮件收发原理
上面就是在邮件收发过程中的原理图,下面是对每个步骤的讲解
- 从图中可以看出,是从网易邮箱向QQ邮箱发送邮件,qjzhhh先通过SMTP协议连接到SMTP邮件发送服务器,之后qjzhhh将邮件发送至网易邮箱服务器中的SMTP邮件发送服务器
- 因为目的地是QQ邮箱,所以再将邮件通过SMTP协议从网易邮箱服务器中的SMTP服务器发送到QQ邮箱服务器中的SMTP邮件发送服务器中
- 将接收到的邮件放置到QQ邮箱服务器中的为872574248的用户开辟的空间中
- 872574248的用户通过POP3协议连接到POP3邮件接收服务器
- 从QQ邮箱服务器中为用户开辟的一段空间中读取接收到的邮件
- POP3服务器将空间中接收到的文件送到账户为872574248@qq.com的用户手中
上述原理简述了电子邮件的收发原理
使用Java来实现邮件的收发
我们将用代码完成邮件的发送。这在实际项目中应用的非常广泛,比如注册需要发送邮件进行账号激活、利用邮件进行任务提醒等等。
必需jar包的导入
在进行Java实现前需要使用到两个jar包
-
mail.jar
-
activation.jar
这两个包需要自行下载:
我在IDEA中新创建了一个叫Email的项目
在项目下新建一个目录
在将新目录创建完成后,将之前下载好的连个jar包拷贝到lib目录下
将jar包拷贝到lib目录后展开如图所示:
到此导入的jar包依旧不能使用,还需要设置依赖,将鼠标放置在lib目录上点击右键
选中箭头所指后点击确定,弹出下面的对话框:
点OK,到此,这两个jar包才算导入完成,我们可以在后续的操作中使用它们
Java代码的实现
在实现之前简单讲解一下逻辑功能:
按照上述逻辑便可以实现邮件的发送,这里使用到了4个关键类,当然在这里只讲解纯文本邮件,包含图片和附件的邮件更复杂些,在后续的讲解中会讲到
但是由于QQ邮箱的独特,需要使用
选择账户一栏
开启下面箭头所指那一栏的功能
在开启时可能需要进行收集验证,验证完成后会产生一个授权码,使用这个授权码可以直接跳过qq密码实现邮件的发送,因为比较重要,所以打上了马赛克
按下图所示创建好目录和文件
至此,一些必要的讲解完成,在下篇博客中详细讲解代码的实现