JAVA邮件发送的大致过程是这样的的:
1、构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法。此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利。
2、构建一个properties文件,该文件中存放SMTP服务器地址等参数。
3、通过构建的properties文件和javax.mail.Authenticator具体类来创建一个javax.mail.Session。Session的创建,就相当于登录邮箱一样。剩下的自然就是新建邮件。
4、构建邮件内容,一般是javax.mail.internet.MimeMessage对象,并指定发送人,收信人,主题,内容等等。
5、使用javax.mail.Transport工具类发送邮件。
下面是我封装的代码,注释也比较详细。呼呼~~
1、首先是继承自javax.mail.Authenticator的一个具体类。getPasswordAuthentication()方法也就是构建一个PasswordAuthentication对象并返回,有点费解JAVA Mail这样的设计意图,可能是javax.mail.Authenticator为我们提供了附加的保证安全的验证措施吧。
packagecom.mzule.simplemail;
importjavax.mail.Authenticator;
importjavax.mail.PasswordAuthentication;
/**
* 服务器邮箱登录验证
*
* @author MZULE
*
*/
public classMailAuthenticatorextendsAuthenticator {
/**
* 用户名(登录邮箱)
*/
privateString username;
/**
* 密码
*/
privateString password;
/**
* 初始化邮箱和密码
*
* @param username 邮箱
* @param password 密码
*/
publicMailAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
String getPassword() {
returnpassword;
}
@Override
protectedPasswordAuthentication getPasswordAuthentication() {
return newPasswordAuthentication(username, password);
}
String getUsername() {
returnusername;
}
public voidsetPassword(String password) {
this.password = password;
}
public voidsetUsername(String username) {
this.username = username;
}
}
2、邮件发送类,剩下的步骤都是在这个类实现的。代码中的SimpleM