美文网首页
SpringBoot整合Mail邮件发送

SpringBoot整合Mail邮件发送

作者: Demon先生 | 来源:发表于2020-07-24 11:26 被阅读0次

Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。

添加依赖

<!-- email -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置application.yml文件

spring:
  mail:
    host: smtp.qq.com
    # 你的邮箱授权码
    password: 
    nickname:    # 该参数为自定义参数,作为发件人昵称使用
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
    # 发送邮件的邮箱地址
    username: ******@qq.com

主流邮箱host

  • qq邮箱:smtp.qq.com
  • 163邮箱:smtp.163.com
  • gmail邮箱:smtp.gmail.com

三种使用方式

发送普通邮件

/**
    * 无附件 简单文本内容发送
    * @param email 接收方email
    * @param subject 邮件内容主题
    * @param text 邮件内容
    */
   public  void simpleMailSend(String email,String subject,String text) {
       //创建邮件内容
       SimpleMailMessage message=new SimpleMailMessage();
       message.setFrom(usernick+"<"+username+">");//这里指的是发送者的账号
       message.setTo(email);
       message.setSubject(subject);
       message.setText(text);
       //发送邮件
       mailSender.send(message);
       System.out.println("\033[32;1m"+"发送给 "+email+" 的邮件发送成功"+"\033[0m");
   }

发送带附件的邮件

/**
    * 发送带附件的邮件
    *
    * @param to      接受人
    * @param subject 主题
    * @param html    发送内容
    * @param filePath  附件路径
    * @throws MessagingException           异常
    * @throws UnsupportedEncodingException 异常
    */
   public  void sendAttachmentMail(String to, String subject, String html, String filePath) throws MessagingException, UnsupportedEncodingException {
       MimeMessage mimeMessage = mailSender.createMimeMessage();
       // 设置utf-8或GBK编码,否则邮件会有乱码
       MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
       messageHelper.setFrom(usernick+"<"+username+">");
       messageHelper.setTo(to);
       messageHelper.setSubject(subject);
       messageHelper.setText(html, true);
       FileSystemResource file=new FileSystemResource(new File(filePath));
       String fileName=filePath.substring(filePath.lastIndexOf(File.separator));
       messageHelper.addAttachment(fileName,file);
       mailSender.send(mimeMessage);
   }

发送Html邮件

/**
    * 发送html内容的 邮件
    * @param email
    * @param subject
    * @param text
    */
   public void sendSimpleMailHtml(String email,String subject,String text) throws MessagingException {
 
 
       MimeMessage mimeMessage = mailSender.createMimeMessage();
 
       MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
       helper.setFrom(username);
       helper.setTo("demogogo@yeah.net");
       helper.setSubject("主题:嵌入静态资源");
       // 注意<img/>标签,src='cid:jpg','cid'是contentId的缩写,'jpg'是一个标记
       helper.setText("<html><body><img src=\"cid:jpg\"></body></html>", true);
       // 加载文件资源,作为附件
       FileSystemResource file = new FileSystemResource(new File("C:\\Users\\吴超\\Pictures\\Camera Roll\\微信截图_20191016142536.png"));
       // 调用MimeMessageHelper的addInline方法替代成文件('jpg[标记]', file[文件])
       helper.addInline("jpg", file);
       // 发送邮件
       mailSender.send(mimeMessage);
   }

相关文章

网友评论

      本文标题:SpringBoot整合Mail邮件发送

      本文链接:https://www.haomeiwen.com/subject/rsjgqktx.html