Loading

java邮件案例

  1. 引入依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-mail</artifactId>
                <version>2.2.6.RELEASE</version>
            </dependency>
    
  2. 配置邮件参数

    spring:
      mail:
        host: smtp.qq.com
        username: 1497315494@qq.com
        password: omoouhbxawdpbaef
        default-encoding: UTF-8
        properties:
          mail:
            smtp:
              socketFactory:
                class: javax.net.ssl.SSLSocketFactory
                port: 465
              auth: true
              starttls:
                enable: true
                required: true
    
  3. 创建线程池

    @Bean
        public ThreadPoolTaskExecutor createThreadPoolTaskExecutor(){
            ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
            threadPoolTaskExecutor.setCorePoolSize(5);
            threadPoolTaskExecutor.setMaxPoolSize(10);
            return threadPoolTaskExecutor;
        }
    
  4. 创建发邮件放方法

    private final Logger logger= LoggerFactory.getLogger(this.getClass());
        @Autowired
        private JavaMailSender javaMailSender;
        @Value("${spring.mail.username}")
        private String from;
        public  void sendMail(String recipient,String subject,String content){
            try {
                SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
                simpleMailMessage.setFrom(from);
                simpleMailMessage.setTo(recipient);
                simpleMailMessage.setSubject(subject);
                simpleMailMessage.setText(content);
                simpleMailMessage.setSentDate(new Date());
                javaMailSender.send(simpleMailMessage);
                logger.info("发送成功");
            }catch (Exception e){
                logger.info("错误信息"+e);
            }
        }
    
  5. 测试

    @Autowired
        SendMail sendMail;
        @Autowired
        ThreadPoolTaskExecutor threadPoolTaskExecutor;
    
        @Test
        void contextLoads() {
            threadPoolTaskExecutor.execute(new Runnable() {
                @Override
                public void run() {
                    sendMail.sendMail("1497315494@qq.com","test","hello world");
                }
            });
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }          
        }
    

    复杂邮件

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8">
        <title>社区网-账号激活</title>
    </head>
    <body>
    <div>
        <p>
            <b th:text="${email}"></b>,你好!
        </p>
        <p>
            你正在注册社区网,这是一封激活邮件,请点击
            <a th:href="${url}"><span style="color: #029789">激活链接</span></a>
            激活你的社区账号!
        </p>
    </div>
    </body>
    </html>
    
    //激活邮件
     Context context=new Context();
     context.setVariable("email",user.getEmail());
     String url= domain+"/user/activation/"+user.getId()+"/"+user.getActivationCode();
     context.setVariable("url",url);
     String content =templateEngine.process("activation",context);
     mailClient.sendMail(user.getEmail(),"激活账号",content);
    
posted @ 2020-12-07 12:16  -Lisa  阅读(49)  评论(0)    收藏  举报