private boolean sendVerifyMailBoxCode(String email, String nickname, String verifyCode) throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.office365.com");// 设置qq邮件服务器
prop.setProperty("mail.transport.protocol", "smtp");// 邮件发送协议
prop.setProperty("mail.smtp.auth", "true");// 需要验证用户名密码
prop.setProperty("mail.smtp.port","587");//SMTP服务器端口 587
prop.setProperty("mail.smtp.starttls.enable", "true");
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.socketFactory", sf);
prop.put("mail.smtp.ssl.protocols", "TLSv1.2");
//这是两种连接方式,选其一即可
//MyAuthentication authentication = new MyAuthentication(username, password);
//Session session = Session.getInstance(prop,authentication);
Session session = Session.getInstance(prop,null);
// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
// 2.通过Session得到transport对象
Transport ts = session.getTransport();
// 3.使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.office365.com", "邮箱号", "授权码");
// 4.创建邮件:写邮件
// 注意需要传递Session;
MimeMessage message = new MimeMessage(session);
// 指定邮件的发件人
message.setFrom(new InternetAddress("telecom@zsmls.com"));
// 指明邮件的收件人
message.setRecipients(Message.RecipientType.TO, email);
// 邮件的标题
message.setSubject("SCM找回密码");
// =================================带图片邮件start=================================================
/* // 准备图片数据 下面是使用的格式
MimeBodyPart image = new MimeBodyPart();
// 图片需要经过数据处理... DataHandler:数据处理
DataHandler dh = new DataHandler(new FileDataSource("C:\\Users\\86152\\Pictures\\tool\\1.jpg"));
image.setDataHandler(dh);// 在我们的Body中放入这个处理的图片数据
image.setContentID("1.jpg");// 给图片设置一个ID,我们在后面可以使用!*/
// 准备正文数据
MimeBodyPart text = new MimeBodyPart();
// text.setContent("这是一封正文带图片<img src='cid:1.jpg'>的邮件", "text/html;charset=UTF-8");
String content = "<div style=\"background-color:#f7f7f7;padding-top:30px;padding-bottom:30px;\">\r\n" +
"测试内容----\r是转义字符"+nickname+"的验证码是"+verifyCode+"\n"+
" </div>";
text.setContent(content,"text/html;charset=UTF-8");
// 描述数据关系
MimeMultipart mm = new MimeMultipart();
// mm.addBodyPart(image);
mm.addBodyPart(text);
mm.setSubType("mixed");
// 设置到消息中,保存修改
message.setContent(mm);
message.saveChanges();
// =================================带图片邮件end=================================================
// 5.发送邮件
ts.sendMessage(message, message.getAllRecipients());
//这个不能加
//Transport.send(message);
// 6.关闭连接
ts.close();
return true;
}
发送邮箱验证码
于 2022-04-21 09:50:21 首次发布