Springboot实现邮件发送

  1. 导入mail坐标
       <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
  2. 配置文件配置
    spring.mail.username=2685341645@qq.com
    spring.mail.password=scetlwtrewchdege  #授权码:在qq邮箱 设置->账户:开启POP3/SMTP服务获得
    spring.mail.host=smtp.qq.com
    #qq邮箱需要下面配置,其它不用
    spring.mail.properties.mail.smtp.ssl.enable=true
    
    
  3. 在测试类进行测试
    • 发送简单邮件
      @Autowired //详情查看 MailSenderAutoConfiguration
      JavaMailSenderImpl mailSender;
      
      @Test
      void contextLoads() {
      
          SimpleMailMessage mailMessage = new SimpleMailMessage();
          mailMessage.setSubject("这是主题"); //设置主题
          mailMessage.setText("这是内容"); //设置内容
          mailMessage.setTo("2685341645@qq.com"); //设置发送地址
          mailMessage.setFrom("2685341645@qq.com"); //设置发送账户(配置文件中配置的)
          mailSender.send(mailMessage); //发送邮件
      }
      
    1. 发送标准邮件(附件等)
      @Test
      void contextLoads2() throws MessagingException {
          //发送复杂邮件
          MimeMessage mimeMessage = mailSender.createMimeMessage();
          MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
          
          helper.setText("<p style='color:red'>这是第二封邮件了</p>",true);
          helper.setSubject("第二封邮件的主题");
          helper.addAttachment("sss.jpg",new File("F:\\桌面\\sss.jpg"));
          helper.setTo("2685341645@qq.com");
          helper.setFrom("2685341645@qq.com");
          mailSender.send(mimeMessage);
      }
      
    2. 可以封装方法,模拟真实环境,这里就进行简单的几个封装
      	/**
           *  自定义的方法,其它内容省略了先,太麻烦了
           * @param title:邮件主题
           * @param text :邮件内容(支持html)
           * @param encoding:编码格式
           * @param flag : 是否存在上传文件
           * 
           * @throws MessagingException
           */
      public void sendMail(String title, String text, String encoding, Boolean flag, Map<String,File> files) throws MessagingException {
          //发送复杂邮件
          MimeMessage mimeMessage = mailSender.createMimeMessage();
      
          MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,flag,encoding);
          helper.setText(text,true); //内容
          helper.setSubject(title); //主题
          if (flag)
              for (String s : files.keySet()) {
                  File file = files.get(s);
                  helper.addAttachment(s,file);
              }
          helper.setTo("2685341645@qq.com");
          helper.setFrom("2685341645@qq.com");
          mailSender.send(mimeMessage);
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值