springboot发送邮件 普通 html inline 附件

2021-07-26 877点热度 0人点赞 0条评论

今天SpringBoot项目中用到发送邮件提醒,之前介绍过在Java、JavaMail中发送邮件,详见:https://blog.terrynow.com/2021/03/30/java-mail-smtp-send-email/ 以及在SpringMVC中发送邮件,详见:https://blog.terrynow.com/2021/07/24/java-spring-mvc-send-mail-example-include-html-inline-attachment/

SpringBoot中发送邮件更加简单了,来看下:

首先增加pom依赖

pom.xml增加

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

application.properties 增加smtp邮件账号配置

smtp发送邮件的帐号具体查看邮件供应商的smtp设置文档

# 邮箱账号等相关配置
spring.mail.protocol = smtp
spring.mail.host = smtp.example.com
spring.mail.port = 25
spring.mail.username = [email protected]
spring.mail.password = password
spring.mail.test-connection = false
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.debug = false
spring.mail.default-encoding = UTF-8

使用

以上就配置好了,很简单,接下来只要在Controller或者Service中,注入JavaMailSender就可以了

下面演示纯文本邮件和复杂的html邮件,可以使用inline cid的方式插入图片,或者addAttachment发送附件等

@Controller
public class TestController {

    @Autowired
    JavaMailSender javaMailSender;

    @RequestMapping(value = "/test_mail_text",method = RequestMethod.GET)
    @ResponseBody
    public String testMailText() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("[email protected]"); // 发件人,一般应该设置成和spring.mail.username一致
        simpleMailMessage.setTo("[email protected]");// 收件人
        simpleMailMessage.setSubject("台风好大"); // 邮件主题
        simpleMailMessage.setText("台风好大");// 邮件内容
        javaMailSender.send(simpleMailMessage);

        return "test_mail_text OK";
    }

    @RequestMapping(value = "/test_mail_html",method = RequestMethod.GET)
    @ResponseBody
    public String testMailHtml() throws Exception {
        String html = "<body><div><h2>测试HTML内容</h2></div></body>";
        //<img src='cid:test.jpg' />内嵌图片
//        String html = "<body><div><h2>测试HTML内容</h2><img src='cid:test.jpg' width='120' height='120' style='border: none; width: 120px; height: 120px;' /></div></body>";
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom("[email protected]", "我是发送方");
//        if (toName != null && toName.trim().length() > 0) {
            helper.setTo(new InternetAddress("[email protected]", "Terry"));
//        } else {
//            helper.setTo(toAddress);
//        }
        helper.setSubject("?台风好大");
        helper.setText(html, true);
//        helper.addInline("test.jpg", new File("xxx"));//发送HTML内嵌的图片
//        helper.addAttachment(xxx);//发送附件
        javaMailSender.send(message);

        return "test_mail_html OK";
    }
}

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论