使用spring boot发送邮件

1.添加依赖

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

2.配置

开启POP3/SMTP服务

设置授权码

application.properties的配置

spring.mail.host=smtp.126.com
spring.mail.username= XXX@XX.com #邮箱
spring.mail.password= XXXXXXXX #授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.发送邮件的Service

SendEmailService.java

package com.tydt.bim.service;

import com.tydt.bim.common.Tasks;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

@Service

public class SendEmailService {
    @Autowired
    JavaMailSender jms;
    private final Logger logger = LoggerFactory.getLogger(SendEmailService.class);
    public String send(String sender,String receiver,String title,String text){
        try{
            //建立邮件消息
            MimeMessage message = jms.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            //发送方
            helper.setFrom(sender);
            //接收方
            helper.setTo(receiver);
            //发送的标题
            helper.setSubject(title);
            //发送的内容
            helper.setText(text,true);
            jms.send(message);
        }catch (MessagingException e){
            logger.error(e.getMessage());
        }
        return "success";
    }
}

4.测试

package com.tydt.bim.controller;

import com.tydt.bim.service.SendEmailService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class DemoController {

    @Resource
    private SendEmailService sendEmailService;
    
    @GetMapping("/sendMail")
    public String send() {

        String sender = "chaoyue_@126.com";
        String receiver = "344381715@qq.com";
        String title = "服务提醒";
        String text = "";
        StringBuffer textTmp = new StringBuffer();
        textTmp.append("<html>
");
        textTmp.append("<body>
");
        textTmp.append("<h2>XXXXXXXXXX</h2>
");
        textTmp.append("XXXXXXXXXXXXXXXXXXXX
");
        textTmp.append("</body>
");
        textTmp.append("</html>");
        text = textTmp.toString();
        String result = sendEmailService.send(sender, receiver, title, text);
        return result;
    }

}
原文地址:https://www.cnblogs.com/baby123/p/13405435.html