spring boot 发邮件

1、pom包配置 

https://start.spring.io/

pom包里面添加spring-boot-starter-mail包引用

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

2、在application.properties中添加邮箱配置

# spring mail 的配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=majun*****@qq.com
spring.mail.password=dkwig********

3、编写mailService,这里只提出实现类。

@Service
public class MailServiceImpl implements MailService {

    @Value("${spring.mail.username}")
    private String FROM_USER;
    @Autowired
    private JavaMailSender javaMailSender;
    @Override
    public void sendTextMail(String toUser, String subject, String content) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(FROM_USER);
        message.setTo(toUser);
        message.setSubject(subject);
        message.setText(content);
        javaMailSender.send(message);
    }

4、编写test类进行测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SpringBootDemoMailApplication.class})
public class MailServiceTests {

    private Logger logger = LoggerFactory.getLogger(MailServiceTests.class);
    private String toUser = "[email protected]";

    @Autowired
    private MailService mailService;

    @Autowired
    private TemplateEngine templateEngine;

    @Test
    public void testSendTextMail() {
        String subject = "Jerome的文本邮件";
        String content = "Jerome的文本邮件的正文部分";
        logger.info("发送文本邮件开始。。。。");
        mailService.sendTextMail(toUser, subject, content);
        logger.info("发送文本邮件结束。。。。");
    }

一个简单的文本发送就完成了

发送html格式邮件 

@Override
public void sendHtmlMail(String toUser, String subject, String content) throws MessagingException {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();

    MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
    mimeMessageHelper.setFrom(FROM_USER);
    mimeMessageHelper.setTo(toUser);
    mimeMessageHelper.setSubject(subject);
    mimeMessageHelper.setText(content, true);

    javaMailSender.send(mimeMessage);
}

在测试类中构建html内容,测试发送

@Test
public void testSendHtmlMail() {
    String subject = "Jerome的Html邮件";
    String content = "<html><body><h3>Jerome的Html邮件的正文部分</h3></body></html>";
    logger.info("发送Html邮件开始。。。。");
    try {
        mailService.sendHtmlMail(toUser, subject, content);
    } catch (MessagingException e) {
        logger.error("发送Html邮件失败。。。。");
        logger.error("Cause By:" + e.getMessage());
    }
    logger.info("发送Html邮件结束。。。。");
}

发送带附件的邮件 
在MailService添加sendAttachmentsMail方法.

在测试类中添加测试方法

邮件带图片和模板

测试:

1、pom中导入thymeleaf的包

2、在resorces/templates下创建emailTemplate.html

3、解析模板并发送

见上图

猜你喜欢

转载自blog.csdn.net/qq_40979622/article/details/82698062