使用SpringBoot实现邮件发送

邮件发送是一个非常常见的功能,注册时的身份认证、重要通知发送等都会用到邮件发送。Sun公司提供了JavaMail用来实现邮件发送,但是配置烦琐,Spring中提供了JavaMailSender用来简化邮件配置,Spring Boot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。下面就来看看Spring Boot中如何发送邮件。

发送前的准备

发送邮件

使用SpringBoot发送邮件,首先要添加邮件依赖:

<!--添加邮件依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

然后配置application.yml文件:

@Component
public class MyMailService {
          
   
    @Autowired
    JavaMailSender javaMailSender;
    public void sendMail(String from,String to,String cc,String subject,String text){
          
   
        SimpleMailMessage smm = new SimpleMailMessage();
        smm.setFrom(from);//发送者
        smm.setTo(to);//收件人
        smm.setCc(cc);//抄送人
        smm.setSubject(subject);//邮件主题
        smm.setText(text);//邮件内容
        javaMailSender.send(smm);//发送邮件
    }
}
    JavaMailSender是Spring Boot在MailSenderPropertiesConfiguration类中配置好的,该类在Mail自动配置类MailSenderAutoConfiguration中导入,因此这里注入JavaMailSender就可以使用了 传递的5个参数分别表示邮件发送者、收件人、抄送人、邮件主题以及邮件内容 简单邮件可以直接构建一个SimpleMailMessage对象进行配置,配置完成后,通过JavaMailSender将邮件发送出去

使用测试类给自己发邮件测试一下:

执行方法后可以看到邮件发送成功了

发送带附件的邮件

要发送一个带附件的邮件也非常容易,通过调用Attachment方法即可添加附件,在MailService中添加如下方法:

public void sendFileMail(String from, String to, String subject, String text, File file){
          
   
        try {
          
   
            MimeMessage mm = javaMailSender.createMimeMessage();
            MimeMessageHelper mmh = new MimeMessageHelper(mm,true);
            mmh.setFrom(from);
            mmh.setTo(to);
            mmh.setSubject(subject);
            mmh.setText(text);
            mmh.addAttachment(file.getName(), file);
        }catch (Exception e){
          
   
            e.printStackTrace();
        }
    }

这里使用MimeMessageHelper简化了邮件配置,它的构造方法的第二个参数true表示构造一个multipart message类型的邮件。最后通过addAttachment方法添加附件

测试一下:

可以看到,邮件发送成功,附件也接收到了 至此,使用SpringBoot实现邮件发送就完成了

经验分享 程序员 微信小程序 职场和发展