一、添加依赖
pom.xml
<!-- 集成邮件发送功能 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
二、添加配置
spring: mail: host: smtp.126.com port: 25 username: 邮箱帐号 password: 密码 protocol: smtp defaultEncoding: UTF-8 properties: mail: smtp: auth: true starttls: enable: true required: true
注:有些邮箱配置的密码是授权码,不是登录邮箱的密码。请参照邮箱中设置的具体说明配置
三、添加发送邮件模块
MailComponent.java
package com.example.springboot.component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.mail.internet.MimeMessage; @Component public class MailComponent { @Autowired JavaMailSender mailSender; private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Async public void sendEmail(String from, String to, String subject, String content) { try { final MimeMessage mimeMessage = this.mailSender.createMimeMessage(); final MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(content); this.mailSender.send(mimeMessage); logger.info("send email success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } }
四、编写发送邮件的controller方法
@GetMapping("/send") public ReturnMsg sendEmail() { String from = "123"; String to = "xxx@qq.com"; String subject = "测试邮件"; String content = "测试内容"; mailComponent.sendEmail(from, to, subject, content); return new ReturnMsg(); }
访问地址:http://127.0.0.1:8000/send 即可查看到发送的邮件