然后系统会给你一个授权码,很重要,牢记!
导入jar包:
<!--邮箱-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置application.properties:
spring.mail.host=smtp.qq.com
spring.mail.username=718009739@qq.com
spring.mail.password=你的授权码放在这里
spring.mail.port=587
#
mail.title=邮件的标题
mail.text=邮件的正文
注意:如果你使用的是JDK8(我就是),SpringBoot中不能直接注入JavaMailSenderImpl类,所以你要先写一个配置类:
package com.example.config;
@Configuration
public class JavaMailSendrConfig {
@Value("${spring.mail.host}")
private String HOST;
@Value("${spring.mail.username}")
private String USERNAME;
@Value("${spring.mail.password}")
private String PASSWORD;
@Value("${spring.mail.port}")
private Integer PORT;
@Bean
public JavaMailSenderImpl getJavaMailSender() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(HOST);
javaMailSender.setUsername(USERNAME);
javaMailSender.setPassword(PASSWORD);
javaMailSender.setPort(PORT);
return javaMailSender;
}
}
我们再编写一个测试类来调用邮箱的发送:
@SpringBootTest
class MailSenderTest {
@Autowired
JavaMailSenderImpl javaMailSender;
@Value("${mail.title}")
private String title;
@Value("${mail.text}")
private String text;
@Test
void mailSend() {
String toMail = "718009739@qq.com";
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(javaMailSender.getUsername());
message.setTo(toMail);
message.setSubject(title);
message.setText(text);
javaMailSender.send(message);
}
}
收件邮件收到了邮箱,效果如下:
我们再写一个获取4为验证码的方法:
private String getCaptcha() {
// 随机的四位数验证码
Random r = new Random(System.currentTimeMillis());
String captcha = "";
for (int i = 0; i < 4; i++) {
int ran1 = r.nextInt(9);
captcha += ran1;
}
return captcha;
}