一.启用客户端STMP服务

添加发送邮件功能,需要指定发送邮件的email地址
以QQ邮箱为例,展示如何开启 STMP 服务,以授权邮箱可作为发送方发送邮件

CBN}A(V}N0B@~2]MVIU1DEQ.png

设置->账户目录下,**开启STMP服务,并生成授权码**

二.配置spring Email

  • 1.导入jar包

     <dependency\>  
            <groupId\>org.springframework.boot</groupId\>  
            <artifactId\>spring-boot-starter-mail</artifactId\>  
            <version\>2.1.6.RELEASE</version\>  
     </dependency\>
  • 2.配置邮箱参数

    在application.properties中配置:
     ```
     //主机号
     spring.mail.host\=smtp.qq.com
     //端口号  
     spring.mail.port\=465
     //email账号  
     spring.mail.username\=371568309@qq.com
     //密码(授权码)  
     spring.mail.password\=nezhkkcjfvqsbhdd
     //支持协议  
     spring.mail.protocol\=smtps
     //采用ssl安全连接  
     spring.mail.properties.mail.smtp.ssl.enable\=true
     ```
    
  • 3.编写MailClient工具类

    @Component  
    public class MailClient {  
    
        private static final Logger logger \= LoggerFactory.getLogger(MailClient.class);  
    
        @Autowired  
      private JavaMailSender mailSender;  
    
        @Value("${spring.mail.username}")  
        private String from;  
    
        /\*\*  
     \* 发送邮件方法  
      \* @param to 发给谁  
      \* @param subject 邮件标题  
      \* @param context 邮件内容  
      \*/  
      public void sendMail(String to, String subject, String context){  
            try{  
                //构建邮件发送对象  
      MimeMessage message = mailSender.createMimeMessage();  
                MimeMessageHelper helper = new MimeMessageHelper(message);  
                helper.setFrom(from);  
                helper.setTo(to);  
                helper.setSubject(subject);  
                helper.setText(context, true);//支持html格式  
      //发送邮件  
      mailSender.send(helper.getMimeMessage());  
            }catch (Exception e){  
                logger.error("发送邮件失败:"+e.getMessage());  
            }  
    
        }  
    
    }

三.发送邮件

@Autowired  
private MailClient mailClient;  

@Autowired  
private TemplateEngine templateEngine;//spring boot内置的模板引擎,调用thymeleaf  

@Test  
public void testTextMail(){  
    mailClient.sendMail("371568309@qq.com","TEST","你好");  
}  

@Test  
public void testHtmlMail(){  
    //创建内容name--value  
  Context context = new Context();  
    context.setVariable("username","219");  
    //绑定模板和内容  
  String content = templateEngine.process("/mail/demo", context);  

    mailClient.sendMail("371568309@qq.com","TEST",content);  
}

oJxLo
1 声望0 粉丝