zoukankan      html  css  js  c++  java
  • SpringMVC 邮件发送

    <!--邮件发送实现类-->

        <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 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();

            }

        }

  • 相关阅读:
    django的模板层
    django的视图层
    django的路由层
    web应用与http协议
    索引
    pymysql模块的使用
    多表查询
    单表查询
    数据的增删改
    自定义form组件
  • 原文地址:https://www.cnblogs.com/fengzhanfei/p/6136860.html
Copyright © 2011-2022 走看看