private JavaMailSender mailSender;//spring配置中定义
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
private void createMailConfig(){
sitemail = restTemplate.getForObject(siteMailServiceUrl + "get", Sitemail.class);
if(sitemail!=null){
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(sitemail.getStmpserver());
javaMailSender.setUsername(sitemail.getMailaddress());
javaMailSender.setPassword(sitemail.getPassword());
javaMailSender.setDefaultEncoding(DefaultEncoding);
//设置Session中的信息,保证邮件认证的一致性
Properties props = new Properties();
props.put("mail.smtp.host", sitemail.getStmpserver());
props.put("mail.smtp.auth", "true");
props.put("mail.transport.protocol", "smtp");
//如果是qq.com启用ssl
if (sitemail.getStmpserver().toLowerCase().endsWith(".qq.com")) {
props.put("mail.smtp.starttls.enable", "true");
}
Authenticator authentic = new MyAuthenticator(sitemail.getMailaddress(), sitemail.getPassword());
Session session = Session.getInstance(props, authentic);
javaMailSender.setSession(session);
this.setMailSender(javaMailSender);
}else{
throw new NullPointerException("没有检索到stmp发件地址");
}
}
@RequestMapping("/sendMailMessagebymodel")
public boolean sendMailMessage(
@RequestBody Map<String, Object> requestParams){
JSONObject mailContentJson= (JSONObject)requestParams.get("mailContent");
MailContentVO mailContent = JSON.toJavaObject(mailContentJson,MailContentVO.class);
Map<String,String> model = (Map)requestParams.get("model");
createMailConfig();
String mailcontent = null;
String mailSubject = null;
mailcontent = MessageTemplateUtil.merge(mailContent.getTemplate(), model);
mailSubject = MessageTemplateUtil.merge(mailContent.getSubject(), model);
MimeMessage mimeMessage = mailSender.createMimeMessage();
//发送超文本
try {
Address fromAddress= getFrom(sitemail.getSendname(),sitemail.getMailaddress());
mimeMessage.setFrom(fromAddress);
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setTo(mailContent.getTo());
messageHelper.setSubject(mailSubject);
messageHelper.setText(mailcontent,true);
} catch (MessagingException e) {
logger.error("sendMailMessage---",e);
}
final MimeMessage mimeMessagenew= mimeMessage;
new Thread(new Runnable() {
@Override
public void run() {
try {
logger.error("------mailSendstart-----------");
mailSender.send(mimeMessagenew);
} catch (Exception e) {
logger.error("------mailSendFail-----------", e);
}
}
}).start();
return true;
}
发送邮件
最新推荐文章于 2024-12-16 08:26:07 发布