加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

SpringMVC 邮件发送配置及代码

发布时间:2020-12-15 00:12:39 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 !--邮件发送实现类--????bean?id="javaMailSender"?class="org.springframework.mail.javamail.JavaMailSenderImpl"????????property?name="host"?val

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

<!--邮件发送实现类-->
????<bean?id="javaMailSender"?class="org.springframework.mail.javamail.JavaMailSenderImpl">
????????<property?name="host"?value="smtp.qq.com"/>
????????<property?name="port"?value="25"/>
????????<property?name="username"?value="你的邮箱"/>
????????<property?name="password"?value="你的邮箱密码"/>
????????<property?name="javaMailProperties">
????????????<props?>
????????????????<prop?key="mail.smtp.auth">true</prop>
????????????</props>
????????</property>
????</bean>
????<bean?id="simpleMailMessage"?class="org.springframework.mail.SimpleMailMessage">
????????<property?name="from"?value="发件人"?/>
????????<property?name="subject"?value="邮件主题"?/>
????????<!--
????????<property?name="text"?value="邮件内容"?/>
????????-->
????</bean>
?<!--线程池异步发送邮件-->
????<bean?id="taskExecutor"?class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
????????<property?name="corePoolSize"?value="5"?/>
????????<property?name="maxPoolSize"?value="10"?/>
????????<property?name="queueCapacity"?value="25"?/>
????</bean>
????<!--FreeMarker模板-->
????<bean?id="freeMarkerConfigurer"?class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
????????<property?name="templateLoaderPath"?value="classpath:template"?/>
????????<!--<property?name="templateLoaderPath"?value="/template"?/>-->
????????<property?name="freemarkerSettings">
????????????<props>
????????????????<prop?key="locale">zh_CN</prop>
????????????????<prop?key="default_encoding">UTF-8</prop>
????????????</props>
????????</property>
????</bean>
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<String,?String>?map?=?new?HashMap<String,?String>(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?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();
????????}
????}
}
????@Inject
????private?MailSender?mailSender;
????????User?user?=?(User)request.getSession().getAttribute("user");
????????String?url?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+
????????????????request.getContextPath();
????????mailSender.send(user,url,email);

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读