spring java code配置_java SpringMVC 邮件发送配置及Code

首先是spring中的配置:(我里面使用了FreeMarker模板引擎)

true

zh_CN

UTF-8

发送邮件的工具类:(采用注解形式注入管理邮件发送的类)

public class MailSender {

@Inject

private JavaMailSender javaMailSender;

@Inject

private SimpleMailMessage simpleMailMessage;

@Inject

private FreeMarkerConfigurer freeMarkerConfigurer;

@Inject

private TaskExecutor taskExecutor;

/**

* 构建邮件内容,发送邮件。

* @param user  用户

* @param url   链接

*/

public void send(User user, String url,String email) {

String nickname = user.getNickname();

String to = email;

String text = "";

Map map = new HashMap(1);

map.put("url", url);

try {

//            从FreeMarker模板生成邮件内容

Template template = freeMarkerConfigurer.getConfiguration().getTemplate("register_mail.ftl");

//            模板中用${XXX}站位,map中key为XXX的value会替换占位符内容。

text = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);

} catch (IOException e) {

e.printStackTrace();

} catch (TemplateException e) {

e.printStackTrace();

}

this.taskExecutor.execute(new SendMailThread(to,null,text));

}

//    内部线程类,利用线程池异步发邮件。

private class SendMailThread implements Runnable {

private String to;

private String subject;

private String content;

private SendMailThread(String to, String subject, String content) {

super();

this.to = to;

this.subject = subject;

this.content = content;

}

@Override

public void run() {

sendMail(to, subject, content);

}

}

/**

* 发送邮件

* @param to        收件人邮箱

* @param subject   邮件主题

* @param content   邮件内容

*/

public void sendMail(String to, String subject, String content) {

try {

MimeMessage message = javaMailSender.createMimeMessage();

MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8");

messageHelper.setFrom(simpleMailMessage.getFrom());

if (subject != null) {

messageHelper.setSubject(subject);

} else {

messageHelper.setSubject(simpleMailMessage.getSubject());

}

messageHelper.setTo(to);

messageHelper.setText(content, true);

javaMailSender.send(message);

} catch (MessagingException e) {

e.printStackTrace();

}

}

}

服务层调用:

1、要注入发送邮件工具类

@Inject

private MailSender mailSender;

2、调用代码

User user = (User)request.getSession().getAttribute("user");

String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+

request.getContextPath();

mailSender.send(user,url,email);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值