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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 部分有序比较器
- android scrollview 滚动到最底部
- Java ScriptEngine:在Java端使用值?
- 卸载Java并重新安装到新位置后,Eclipse将无法启动
- Cannot create PoolableConnectionFactory (Communications
- java – ArrayList的特殊行为remove() – 为什么?
- java – 查找本地网络中的所有IP地址
- Raspberry Pi上Java的线程性能问题
- java BASE64Encoder详细介绍及简单实例
- 应用程序的实现:openURL:sourceApplication:annotation: