JavaMail 使用163发邮件
EmailAuthenticator 验证对象
package cn.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* EmailAuthenticator 继承自 Authenticator
* */
public class EmailAuthenticator extends Authenticator {
//用户名
private String username = null;
//密码
private String userpass = null;
//构造方法传参数
public EmailAuthenticator(String username, String userpass) {
super();
this.username = username;
this.userpass = userpass;
}
//得到密码的验证对象
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username, userpass);
}
}
Mail 发邮件类
package cn.mail;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 发邮件类
* */
public class Mail {
//服务器,发件人,收件人,主题,内容
private String mailServer,from,to,mailSubject,mailContent;
//用户名,密码
private String username,password;
//构造方法:把所有的参数都设置好
public Mail() {
//设置邮件信息
username = "[email protected]";
password = "*****";
mailServer = "smtp.163.com";
from = "[email protected]";
to="[email protected]";//收件人写自己
mailSubject="问好";
mailContent="好久不见,最近好吗?";
}
/**
* 发邮件方法
* */
public void send(){
//设置邮件服务器
Properties prop = new Properties();
//smtp 服务器主机
prop.put("mail.smtp.host", mailServer);
//是否要验证
prop.put("mail.smtp.auth", "true");
//验证器
EmailAuthenticator mailAuth = new EmailAuthenticator(username,password);
//产生 Session 服务
Session mailSession = Session.getInstance(prop, mailAuth);
try {
//封装 Message 对象
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));//设置发件人
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(to));//设置收件人
message.setSubject(mailSubject);//设置主题
message.setContent(mailContent,
"text/html;charset=GBK");//设置内容(设置字符集外置乱码问题)
message.setSentDate(new Date());//设置日期
//创建 Transport 实例,发送邮件,参数是:协议
Transport tran = mailSession.getTransport("smtp");
//发送:消息,收件人数组
Transport.send(message, message.getAllRecipients());
tran.close();
System.out.println("发送成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("发送失败");
}
}
}
Test 测试类
package cn.test;
import cn.mail.Mail;
/**
* 测试类
* */
public class Test {
public static void main(String[] args) {
Mail mail = new Mail();
System.out.println("开始发送");
mail.send();
}
}
效果图: