spring boot 发送邮件

  1. 引入依赖包
    compile 'org.springframework.boot:spring-boot-starter-mail'
    
  2. 确保邮箱已经开启了smtp服务
  3. 需要配置以下选项
    1. 带ssl的配置方法
    spring.mail.protocol=smtp   //使用的协议
    spring.mail.host=smtp.sina.com //邮箱服务器
    [email protected] //邮箱登录名
    spring.mail.password=XXXXX //邮箱登录密码
    spring.mail.smtp.timeout=25000
    [email protected] //邮件发送人
    spring.mail.port=465 //smtp端口 这个需要查阅邮箱服务器提供的端口一般是465
    spring.mail.defaultEncoding=UTF-8
    spring.mail.properties.mail.smtp.starttls.enable=true //是否使用ssl
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory // 这个视情况而定 有些邮箱服务器ssl需要设置这个 有些服务器不需要设置 这里统一都加上
    
    
    1. 不带ssl的配置方法
      spring.mail.protocol=smtp   //使用的协议
      spring.mail.host=smtp.sina.com //邮箱服务器
      [email protected] //邮箱登录名
      spring.mail.password=XXXXX //邮箱登录密码
      spring.mail.smtp.timeout=25000
      [email protected] //邮件发送人
      spring.mail.port=25 //smtp端口 这个需要查阅邮箱服务器提供的端口一般是25
      spring.mail.defaultEncoding=UTF-8
      
  4. 发送邮件
    @Resource
    private JavaMailSender javaMailSender;
    
    
    @PostMapping("/sendMail")
    public ResponseEntity sendMail(){
    
        try {
            //创建html类型的邮件
            MimeMessage mailMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");
            /**
             * 设置发送人 必填
             */
            messageHelper.setFrom("[email protected]");
            //设置接收人
            messageHelper.setTo(new String[]{"[email protected]"});
            //设置邮件内容 可以是html或者是普通文本
            messageHelper.setText("333333333",true);
            //设置抄送
        // messageHelper.setCc("[email protected]");
            //设置邮件标题
            messageHelper.setSubject("你好");
            javaMailSender.send(mailMessage);
        } catch (MessagingException e) {
           e.printStackTrace();
        }
    
        return ResponseEntity.ok().build();
    }
    

你可能感兴趣的:(spring boot 发送邮件)