public boolean sendEmail(String username, String code, String type, String subject, String content) {
// 设置发件人邮箱
String from = "xxxxxxxxxxxxxxxxxx";
StringBuffer body = new StringBuffer();
// // 邮箱主题
// 发送内容模板预设
body.append(content);
// 随机生成的六位验证码
body.append(code);
String smtpHost = "smtp.163.com";
Properties props = new Properties();
// 使用的协议(JavaMail规范要求)
props.setProperty("mail.transport.protocol", "smtp");
// smtp服务器地址
props.setProperty("mail.host", "smtp.163.com");
// 请求认证,参数名称与具体实现有关
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.ssl.enable", "true");
//添加信任的服务器地址,多个地址之间用空格分开
props.put("mail.smtp.ssl.trust", "smtp-mail.outlook.com");
props.put("mail.smtp.host", "smtp-mail.outlook.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.ssl.checkserveridentity", "false");
// 创建Session实例对象
Session session = Session.getDefaultInstance(props);
// 设置为debug模式, 可以查看详细的发送 log,为false时不能查看
session.setDebug(true);
try {
// 创建MimeMessage实例对象
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
// 设置收件人 设置在发送给收信人之前给自己(发送方)抄送一份
message.addRecipients(MimeMessage.RecipientType.CC, InternetAddress.parse(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(username));
// 设置发送日期
message.setSentDate(new Date());
// 设置邮件主题
message.setSubject(subject);
// 设置纯文本内容的邮件正文
message.setText(body.toString());
// 保存并生成最终的邮件内容
message.saveChanges();
// 获取Transport对象
Transport transport = session.getTransport();
// #用授权码替换
transport.connect(smtpHost, 465, from, "xxxxxxxxxxxxxxxxxxxxxx");
// 发送,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
return true;
}
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
