SpringBoot学习之路---发送带附件的邮件

这篇博客简单记录一下,如何通过SpringBoot发送带附件的邮件


首先还是需要导入maven相关依赖:

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

接着SpringBoot在相关的自动配置类中帮我们导入一个组件:

	@Bean
    JavaMailSenderImpl mailSender(Session session) {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setDefaultEncoding(this.properties.getDefaultEncoding().name());
        sender.setSession(session);
        return sender;
    }

因此就可以直接注入使用JavaMailSenderImpl发送邮件即可。

在全局配置(application.yaml)配置属性:

spring:
  mail:
    host: smtp.qq.com #如果是qq邮箱就这么填,如果是别的邮箱,就填对应的地址
    username: ********@qq.com
    password: ************* # 需要短信发送授权码,具体的方法可以去邮箱主页查看
    default-encoding: UTF-8

测试类代码:

@SpringBootTest
class SpringbootDemoApplicationTests {

    @Autowired
    private JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() throws Exception{
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        mimeMessageHelper.setSubject("测试");
        mimeMessageHelper.setText("<a href='http://www.baidu.com'>点击这里</a>",true);
        mimeMessageHelper.setFrom("***********@qq.com");
        mimeMessageHelper.setTo("**********@qq.com");

        //发送附件
        mimeMessageHelper.addAttachment("favicon.ico",new File("/Users/air/Documents/favicon.ico"));

        javaMailSender.send(mimeMessage);
    }

}

方法解释:

  • createMimeMessage():创建一个复杂的message对象,它的功能比以前的SimpleMimeMessage
  • new MimeMessageHelper(mimeMessage, true): 由于MimeMessage没有发送附件的相应方法,所以需要借助工具类,而MimeMessageHelper就是这样一个工具类。它的构造方法有两个参数,第一个传入要操作的MimeMessage,第二个为是否支持multipart,我们都要发送附件了,那肯定要支持了。
  • **setXXX:**设置各种参数,略
  • mimeMessageHelper.addAttachment(“favicon.ico”,new File("/Users/air/Documents/favicon.ico")): 该方法作用,发送附件了,第一个参数是显示在邮件中的文件名称,第二个参数是File对象
  • javaMailSender.send(mimeMessage): 发送邮件。

接着看看是否发送成功:

在这里插入图片描述
bingo~~

猜你喜欢

转载自blog.csdn.net/Jokeronee/article/details/105901177