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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – IntelliJ IDEA将final添加到自动生成的setter
- java – Eclipse中划掉断点的含义[复制]
- Java加密算法Triple DES
- 带有progressBar和Slider的JavaFX图形bug
- java – (简单)DateFormat,允许24:00:00和00:00:00作为输入
- Java基础之Integer使用的注意事项及面试题
- Threadsafe Singleton没有Java同步?
- java – 如何对大量JUnit测试进行分组/分类
- JSP spring boot / cloud 使用filter防止XSS
- 当用户点击关闭窗口时,如何将java应用程序放在Systemtray中
