spring-boot发送mail邮件

https://docs.spring.io/spring-framework/docs/5.3.4/reference/html/integration.html#mail


简介:

  SpringBoot在Spring提供的抽象可定制的JavaMailSender邮件机制的基础上,作了一些封装和实现,以实现开箱即用、配置即用快速开发。下面就简单示例一下如何使用spring boot mail,更多可详见官网https://docs.spring.io/spring-framework/docs/5.3.4/reference/html/integration.html#mail


准备工作:

  • 引入相关依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
  • 配置邮件信息
    # 邮箱服务器地址
    spring.mail.host=smtp.163.com
    # 邮箱服务器(发送邮件的)端口
    spring.mail.port=465
    # 用户名
    spring.mail.username=填写你自己的邮箱
    # 密码(或授权码)
    spring.mail.password=填写你自己邮箱的授权码(或密码)
    # 会话JNDI名称
    #spring.mail.jndi-name=
    # 是否在项目启动时,就对邮箱可用性进行测试
    #spring.mail.test-connection=false
    # 通过spring.mail.properties指定更多配置
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.ssl.enable=true
    spring.mail.properties.mail.imap.ssl.socketFactory.fallback=false
    spring.mail.properties.mail.smtp.ssl.socketFactory.class=javax.net.ssl.SSLSocketFactory
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.starttls.required=true
    spring.mail.properties.mail.smtp.timeout=3000
    spring.mail.properties.[mail.smtp.connectiontimeout]=5000
    spring.mail.properties.mail.smtp.writetimeout.=5000
    

使用示例:

  • 发送【普通邮件】

    • 代码
      @Autowired
      JavaMailSender javaMailSender;
      
      /**
       * 普通邮件
       */
      @Test
      void test1() {
          SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
          // 邮件发送人(设置昵称)
          simpleMailMessage.setFrom("邓沙利文<13548417409@163.com>");
          // 邮件发送人
          // simpleMailMessage.setFrom("13548417409@163.com");
          // 邮件接收人
          simpleMailMessage.setTo("1612513157@qq.com");
          // 抄送人
          // simpleMailMessage.setCc();
          // 密送人
          // simpleMailMessage.setBcc();
          // 邮件主题
          simpleMailMessage.setSubject("我是主题 - 普通邮件");
          // 邮件内容
          simpleMailMessage.setText("我是邮件内容");
          javaMailSender.send(simpleMailMessage);
      }
      
    • 效果
      在这里插入图片描述
  • 发送【带附件的邮件】

    • 代码
      @Autowired
      JavaMailSender javaMailSender;
      
      /**
       * 带附件的邮件
       */
      @Test
      void test2() throws MessagingException {
          MimeMessage message = javaMailSender.createMimeMessage();
          // 创建multipart message
          MimeMessageHelper helper = new MimeMessageHelper(message, true);
          // 邮件发送人(设置昵称)
          helper.setFrom("邓沙利文<13548417409@163.com>");
          // 邮件发送人
          // helper.setFrom("13548417409@163.com");
          // 邮件接收人
          helper.addTo("1612513157@qq.com");
          // 抄送人
          // helper.addCc();
          // 密送人
          // helper.addBcc();
          // 邮件主题
          helper.setSubject("我是主题 - 带附件的邮件");
          // 邮件内容
          helper.setText("我是邮件内容");
          // 附件
          helper.addAttachment("file-1", new File("src/main/resources/pdf/spring-framework-reference.pdf"));
          javaMailSender.send(message);
      }
      
    • 效果
      在这里插入图片描述
  • 发送【HTML格式的邮件】

    • 代码
      @Autowired
      JavaMailSender javaMailSender;
      
      /**
       * HTML格式的邮件
       */
      @Test
      void test3() throws MessagingException {
          MimeMessage message = javaMailSender.createMimeMessage();
          // 创建multipart message
          MimeMessageHelper helper = new MimeMessageHelper(message, true);
          // 邮件发送人(设置昵称)
          helper.setFrom("邓沙利文<13548417409@163.com>");
          // 邮件发送人
          // helper.setFrom("13548417409@163.com");
          // 邮件接收人
          helper.addTo("1612513157@qq.com");
          // 抄送人
          // helper.addCc();
          // 密送人
          // helper.addBcc();
          // 邮件主题
          helper.setSubject("我是主题 - html格式的邮件");
          // 邮件内容(true - 表示是html格式的内容)
          helper.setText("<p style=\"font-family:arial;color:red;font-size:20px;\">我是邮件内容</p>", true);
          // 附件
          // helper.addAttachment("file-1", new File("src/main/resources/pdf/spring-framework-reference.pdf"));
          javaMailSender.send(message);
      }
      
    • 效果
      在这里插入图片描述
  • 发送【内联(图片的)邮件】

    • 代码
      @Autowired
      JavaMailSender javaMailSender;
      
      /**
       * 内联(图片的)邮件
       */
      @Test
      void test4() throws MessagingException {
          MimeMessage message = javaMailSender.createMimeMessage();
          // 创建multipart message
          MimeMessageHelper helper = new MimeMessageHelper(message, true);
          // 邮件发送人(设置昵称)
          helper.setFrom("邓沙利文<13548417409@163.com>");
          // 邮件发送人
          // helper.setFrom("13548417409@163.com");
          // 邮件接收人
          helper.addTo("1612513157@qq.com");
          // 抄送人
          // helper.addCc();
          // 密送人
          // helper.addBcc();
          // 邮件主题
          helper.setSubject("我是主题 - 内联(图片的)邮件");
          // 邮件内容(true - 表示是html格式的内容)
          helper.setText("看我后面有图片 <img src='cid:contentId123'/>", true);
          // 设置内联的图片,通过cid指定对应关系(,如这里的contentId123)
          helper.addInline("contentId123", new File("src/main/resources/jpg/panda.jpg"));
          // 附件
          // helper.addAttachment("file-1", new File("src/main/resources/pdf/spring-framework-reference.pdf"));
          javaMailSender.send(message);
      }
      
    • 效果
      在这里插入图片描述

提示 更多详见官网。


^_^ 如有不当之处,欢迎指正

^_^ 官网链接
         https://docs.spring.io/spring-framework…

^_^ 本文已经被收录进《程序员成长笔记》 ,笔者JustryDeng

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值