Springboot发送邮件(集成JavaMailSender MimeMessage)

1.在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖:
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-mailartifactId>
        dependency>
2.以QQ邮箱为例,在application.yml中加入如下配置(注意替换自己的用户名和密码):
spring:
  #邮件配置
  mail:
    # 设置邮箱主机
    host: smtp.qq.com
    # 开启邮箱POP3/SMTP服务,获取客户端授权码(注意并不是邮箱密码,而是授权码)
    password: uriarqfegqchgcge
    # 邮箱的用户名
    username: [email protected]
    properties:
      mail:
        smtp:
          # 设置是否需要认证,如果为true,那么用户名和密码就必须的。如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
          auth: true
          starttls:
            # STARTTLS[1]  是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
            enable: true
            require: true
3.下面是发送邮件的单元测试用例:
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Slf4j
@SpringBootTest
@RunWith(SpringRunner.class)
public class SendExMailTest {

    @Autowired
    private JavaMailSender mailSender;

    @Test
    public void testSend() {
        MimeMessage message = mailSender.createMimeMessage();
        // true代表是multipart类型
        log.info("开始发送邮件");
        MimeMessageHelper helper;
        try {
            helper = new MimeMessageHelper(message, true);
            //发送者
            helper.setFrom("[email protected]");
            //接收者
            helper.setTo("[email protected]");
            //邮件主题
            helper.setSubject("test报告");
            //邮件内容
            helper.setText("test", true);

            //带有附件
            FileSystemResource file1 = new FileSystemResource(new File("C:/Users/Administrator/Desktop/eee.png"));
            helper.addAttachment("ees.png",file1);
            FileSystemResource file2 = new FileSystemResource(new File("C:/Users/Administrator/Desktop/test.jpg"));
            helper.addAttachment("test.jpg",file2);

            //嵌入图片
            //邮件内容,第二个参数指定发送的是HTML格式
            //说明:嵌入图片,其中cid:是固定的写法,而aaa是一个contentId。
            helper.setText("这是图片:", true);
            FileSystemResource file3 = new FileSystemResource(new File("C:/Users/Administrator/Desktop/test.jpg"));
            helper.addInline("aaa",file3);

            mailSender.send(message);
            log.info("邮件发送成功");
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }
}

参考链接:https://412887952-qq-com.iteye.com/blog/2305992

你可能感兴趣的:(SpringBoot)