一、电子邮件
要在网络上实现邮件功能,必须要有专门的邮件服务器。
这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
SMTP服务器地址:一般是smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。
电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请。比如我们要使用QQ邮箱,就需要开通邮箱功能;
二、传输协议
SMTP协议
发送邮件:
我们通常把处理用户SMTP请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。
POP3协议
接收邮件:
我们通常把处理用户POP3请求(邮件接受请求)的服务器称之为POP3服务器(邮件接收服务器)。
三、邮件收发原理
1.张三通过smtp协议连接到Smtp服务器,然后发送一封邮件给网易的邮件服务器
2.网易分析发现需要去QQ的邮件服务器,通过smtp协议将邮件转投给QQ的Smtp服务器
3.QQ将接收到的邮件存储在xxxxx@qq.com这个邮件账号的空间中
4.李四通过Pop3协议连接到Pop3服务器收取邮件
5.从xxxxx@qq.com这个邮件账号的空间中取出邮件
6.Pop3服务器将取出来的邮件送到李四手中
四、Java发送邮件
概述
核心API介绍:
-
Message类
javax.mail.Message 类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。客户端程序发送邮件时,首先使用创建邮件的API,将要创建邮件的数据封装到Message对象中,然后把这个对象传递给邮件发送API发送出去。客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message类的实例对象中,客户端程序再使用邮件解析API,从这个对象中解析出接收到的邮件数据。
-
Session类
javax.mail.Session 类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些会话信息构建邮件收发的Store和Transport对象,以及为客户端创建Message对象提供信息支持。
-
Transport类
javax.mail.Transport 类是发送邮件的核心API类,它的实例对象,代表实现了某个邮件发送协议的邮件发送对象,例如SMTP 协议。客户端程序创建好Message对象后,只需要使用邮件发送API得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。
代码执行
我们将用代码完成邮件的发送。这在实际项目中应用非常广泛,比如注册需要通过发送邮件进行账号激活,又比如OA项目中利用邮件进行任务提醒等等。
使用Java发送E-mail非常简单,首先准备好JavaMail API和Java