Springboot整合邮件发送(163邮箱为例)

一、添加spring-boot-starter-mail

  <!--邮件发送-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

二、添加yml配置

spring:
  mail:
    host: smtp.163.com
    password: 邮箱授权码不是密码
    username: 163邮箱
    port:
    default-encoding: UTF-8
    protocol: smtp
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
      mail.smtp.socketFactory.port: 465
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
      mail.smtp.socketFactory.fallback: false

三、发送邮件实现

public interface MailService {
    
    
    /**
     * 邮件发送
     * @param to
     * @param subject
     * @param text
     * @return
     */
    boolean sendMail(String to, String subject, String text);
}

@Service
public class MailServiceImpl implements MailService {
    
    
    private final JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String from;

    public MailServiceImpl(JavaMailSender mailSender) {
    
    
        this.mailSender = mailSender;
    }

    @Override
    public boolean sendMail(String to, String subject, String text) {
    
    
        SimpleMailMessage msg = new SimpleMailMessage();
        msg.setFrom(from);
        msg.setTo(to);
        msg.setSubject(subject);
        msg.setText(text);
        try {
    
    
            mailSender.send(msg);
        } catch (MailException ex) {
    
    
            System.err.println(ex.getMessage());
            return false;
        }
        return true;
    }
}

四、调用接口发送测试邮件

@RestController
@RequestMapping("mail")
public class EmailController {
    
    

    @Autowired
    MailService mailService;

    @RequestMapping("send")
    public void sendMail(){
    
    
        mailService.sendMail("[email protected]","test","test");
    }
}

Guess you like

Origin blog.csdn.net/luomo0203/article/details/112501658