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

SpringMVC 邮件发送配置及代码

发布时间:2020-05-24 16:17:54 所属栏目:Java 来源:互联网
导读:SpringMVC 邮件发送配置及代码

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

<!--邮件发送实现类-->
<beanid="javaMailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl">
<propertyname="host"value="smtp.qq.com"/>
<propertyname="port"value="25"/>
<propertyname="username"value="你的邮箱"/>
<propertyname="password"value="你的邮箱密码"/>
<propertyname="javaMailProperties">
<props>
<propkey="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
<beanid="simpleMailMessage"class="org.springframework.mail.SimpleMailMessage">
<propertyname="from"value="发件人"/>
<propertyname="subject"value="邮件主题"/>
<!--
<propertyname="text"value="邮件内容"/>
-->
</bean>
<!--线程池异步发送邮件-->
<beanid="taskExecutor"class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<propertyname="corePoolSize"value="5"/>
<propertyname="maxPoolSize"value="10"/>
<propertyname="queueCapacity"value="25"/>
</bean>
<!--FreeMarker模板-->
<beanid="freeMarkerConfigurer"class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<propertyname="templateLoaderPath"value="classpath:template"/>
<!--<propertyname="templateLoaderPath"value="/template"/>-->
<propertyname="freemarkerSettings">
<props>
<propkey="locale">zh_CN</prop>
<propkey="default_encoding">UTF-8</prop>
</props>
</property>
</bean>
publicclassMailSender{
@Inject
privateJavaMailSenderjavaMailSender;
@Inject
privateSimpleMailMessagesimpleMailMessage;
@Inject
privateFreeMarkerConfigurerfreeMarkerConfigurer;
@Inject
privateTaskExecutortaskExecutor;
/**
*构建邮件内容,发送邮件。
*@paramuser用户
*@paramurl链接
*/
publicvoidsend(Useruser,Stringurl,Stringemail){
Stringnickname=user.getNickname();
Stringto=email;
Stringtext="";
Map<String,String>map=newHashMap<String,String>(1);
map.put("url",url);
try{
//从FreeMarker模板生成邮件内容
Templatetemplate=freeMarkerConfigurer.getConfiguration().getTemplate("register_mail.ftl");
//模板中用${XXX}站位,map中key为XXX的value会替换占位符内容。
text=FreeMarkerTemplateUtils.processTemplateIntoString(template,map);
}catch(IOExceptione){
e.printStackTrace();
}catch(TemplateExceptione){
e.printStackTrace();
}
this.taskExecutor.execute(newSendMailThread(to,null,text));
}
//内部线程类,利用线程池异步发邮件。
privateclassSendMailThreadimplementsRunnable{
privateStringto;
privateStringsubject;
privateStringcontent;
privateSendMailThread(Stringto,Stringsubject,Stringcontent){
super();
this.to=to;
this.subject=subject;
this.content=content;
}
@Override
publicvoidrun(){
sendMail(to,subject,content);
}
}
/**
*发送邮件
*@paramto收件人邮箱
*@paramsubject邮件主题
*@paramcontent邮件内容
*/
publicvoidsendMail(Stringto,Stringcontent){
try{
MimeMessagemessage=javaMailSender.createMimeMessage();
MimeMessageHelpermessageHelper=newMimeMessageHelper(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(MessagingExceptione){
e.printStackTrace();
}
}
}
@Inject
privateMailSendermailSender;
Useruser=(User)request.getSession().getAttribute("user");
Stringurl=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+
request.getContextPath();
mailSender.send(user,url,email);

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

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

    推荐文章
      热点阅读