public class SendEmail extends Thread{
private User user;
public SendEmail(User user) {
this.user=user;
}
//发送人邮箱;
private String fromEamil="发送人@qq.com";
//发送人授权码;
private String code="授权码";
@Override
public void run() {
try {
Properties properties = new Properties();
//设置qq邮件服务器;
properties.setProperty("mail.host", "smtp.qq.com");
//邮件发送协议;
properties.setProperty("mail.transport.protocol", "smtp");
//需要验证用户名与密码;
properties.setProperty("mail.smtp.auth", "true");
//QQ邮箱的SSL加密;
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
//使用JavaMail发送邮件;
//1.首先创建整个应用程序的全局session对象;(启动==>session销毁结束)
//QQ的独特创建方式;===>
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//userName:用户名 password:授权码
return new PasswordAuthentication(fromEamil, code);
}
});
//开启session的debug模式;
session.setDebug(true);
//2.session==>获取Transport对象
Transport ts = session.getTransport();
//3.使用邮箱的授权码,用户名,连接邮件的服务器;
ts.connect("smtp.qq.com", fromEamil, code);
//4.创建邮件; 需要传递session;
MimeMessage message = new MimeMessage(session);
//需要指明邮件的发送人;
message.setFrom(new InternetAddress(fromEamil));
//指明收件人==>
message.setRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail()));
//邮件标题;
message.setSubject("XX注册提示邮件", "utf-8");
//文本内容;
message.setContent("用户"+ user.getName()+",您的密码为"+user.getPassword(),
"text/html;charset=UTF-8");
//5.发送邮件; 需要指明发送的地址;
ts.sendMessage(message, message.getAllRecipients());
//6.关闭;
ts.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}