SpringBoot 中使用 网易邮箱 或 qq邮箱 发送信息
1. 所需依赖2. 代码3. qq邮箱配置获取授权码4. 网易邮箱配置获取授权码5. 测试类可能要引入一些依赖, 大家自行引入注意, 没有配置properties文件直接运行会报错发送Email服务1. 所需依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
其他需要的Spring依赖可以自行添加
2. 代码
import lombok.RequiredArgsConstructor;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.stereotype.Service;@Servicepublic class EmailServiceSmtpImpl {@Autowiredprivate JavaMailSender emailMailSender;public void send() {SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom(你的邮箱,发送方邮箱,qq邮箱或者网易邮箱);simpleMailMessage.setTo(接收方的邮箱); simpleMailMessage.setSubject(邮件的主题(邮件的名称));simpleMailMessage.setText(发送的内容);emailMailSender.send(simpleMailMessage);}}
3. qq邮箱配置
在application.properties文件中添加如下配置
# 服务器的主机, 是固定的spring.mail.host=# 授权码, 下面说如何获取spring.mail.password=xxxx# 配置spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=true# 放送方的qq邮箱spring.mail.username=
获取授权码
鼠标滚轮向下滑动, 找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
我这里需要一些验证
获得授权码
授权码要牢记, 如果忘了, 关了再重新开启一次
4. 网易邮箱配置
在application.properties文件中添加如下配置
# 服务器的主机, 是固定的spring.mail.host=# 授权码, 下面说如何获取spring.mail.password=xxxx# 配置spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=true# 放送方的网易邮箱spring.mail.username=
获取授权码
开启后获取授权码, 我的已经开启啦
5. 测试类
可能要引入一些依赖, 大家自行引入
注意, 没有配置properties文件直接运行会报错
import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.annotation.DirtiesContext;import org.springframework.test.context.ActiveProfiles;@ActiveProfiles("test")@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)public class BaseIntegrationTest {}
import main.service.validation.EmailServiceSmtpImpl;import main.service.validation.SmsServiceTencentSmsImpl;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.junit.jupiter.SpringExtension;@ExtendWith(SpringExtension.class)public class SmtpSendMailUnitTests extends BaseIntegrationTest {@Autowiredprivate EmailServiceSmtpImpl emailServiceSmtpImpl;@Testpublic void sendSmsWangYi_thenAcceptSuccessfully () {emailServiceSmtpImpl.send(你的qq邮箱, 发送的信息);}}
发送Email服务
import lombok.RequiredArgsConstructor;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.stereotype.Service;@Service@RequiredArgsConstructorpublic class EmailServiceSmtpImpl implements EmailService {private final JavaMailSender emailMailSender;public void send(String email, String message) {SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom("xxx@");simpleMailMessage.setTo(email);simpleMailMessage.setSubject("Spring Security 登录验证码");simpleMailMessage.setText("验证码为:" + message);emailMailSender.send(simpleMailMessage);}}