zoukankan      html  css  js  c++  java
  • Spring send mail

     首先要导入基于Spring 的Jar 包!

    //定义要发关Mail 的接口

    public interface MailService {
       
        /**
         * 发送注册成功的邮件
         * @param account
         */
        void sendRegisteMail(Account account);
        /**
         * 发送下订单成功的邮件
         * @param order
         */
        void sendOrderMail(Order order);
        /**
         * 群发广告邮件
         * @param accounts 账号列表
         * @param subject 主题
         * @param content 内容
         */
        void sentAdMail(List<Account> accounts, String subject, String content);
    }

    //实现这个接口

    // 要从在和本类包下的一个文件/mail_registe.txt读取文件

    public class MailServiceImpl implements MailService {
        private String from="liucheng_89@126.com"; //发送人邮箱地址
        private String registeTemplateName = "com/liuc/service/impl/mail_registe.txt";
        private MailSender mailSender;

        public void setMailSender(MailSender mailSender) {
            this.mailSender = mailSender;
        }


     
        @Override
        public void sendOrderMail(Order order) {
            // TODO Auto-generated method stub

        }

     
        @Override
        public void sendRegisteMail(Account account) {
            SimpleMailMessage mail = new SimpleMailMessage();
            mail.setFrom(this.from);
            mail.setTo(account.getEmail());
            mail.setSubject("恭喜你成功注册成为易买商城的会员!");
            mail.setText(loadTemplateContent(registeTemplateName).replaceAll("//$//{LOGINNAME//}", account.getLoginname()));
            this.mailSender.send(mail);
        }

     
        @Override
        public void sentAdMail(List<Account> accounts, String subject,
                String content) {
            // TODO Auto-generated method stub

        }
       
        private String loadTemplateContent(String templateName){
            StringBuilder sb = new StringBuilder();
            BufferedReader br= null;
            try{
                br = new BufferedReader(
                        new InputStreamReader(
                            Thread.currentThread()
                                  .getContextClassLoader()
                                  .getResourceAsStream(templateName), "UTF-8"));
               
                String lineSeparator = System.getProperty("line.separator");
                for(String str = null; (str = br.readLine()) != null;){
                    sb.append(str);
                    sb.append(lineSeparator);
                }
            }catch(IOException e){
                e.printStackTrace();
            }finally{
                if(br != null){
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
           
            return sb.toString();
        }

    }

    //是mail_registe.txt


    亲爱的${LOGINNAME}:您好!
    恭喜你成为易买商城的会员!

    你的登录用户名为:${LOGINNAME}
    你的登录口令为:******(隐藏)
    大家好!请多多关注我!

    本站网址:http://www.emall.cn
    联系邮箱:hr@emall.cn


    //在applicationContext-service.xml 注册


    <!-- SMTP:Simple Mail Transfer Protocol)即简单邮件传输协议  -->
        <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
          <property name="host" value="smtp.163.com"/>
          <property name="port" value="25"/>
          <property name="username" value="liucheng_89"/>
          <property name="password" value="xxxxxxxx"/>
          <property name="defaultEncoding" value="utf-8"/>
          <property name="javaMailProperties">
              <props>
                  <prop key="mail.smtp.auth">true</prop>
              </props>
          </property>
        </bean>

        <bean id="mailService" class="com.liuc.service.impl.MailServiceImpl">
            <property name="mailSender" ref="mailSender"/>
        </bean>

  • 相关阅读:
    设计模式之装饰模式
    SpringAOP 失效解决方案、Spring事务失效
    Jmeter测试出现端口占用情况
    ElasticSearch创建动态索引
    Zuul + Ribbon 脱离Eureka完成负载均衡+重试机制
    TCP的三次握手与四次挥手笔记
    Java中的阻塞队列
    Jmeter5.1——聚合报告参数分析
    SpringCloud"灰度部署"——动态刷新网关配置
    JVM学习笔记——类加载过程
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218458.html
Copyright © 2011-2022 走看看