SpringBoot任务管理之发送邮件
一:纯文本邮件
添加邮件依赖:
我选用了2.4.3版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.4.3</version>
</dependency>
配置(我用的是yml文件):
spring:
mail:
default-encoding: UTF-8
host: smtp.qq.com
port: 587
username: 87......24@qq.com
password: rcetritpgxylbfdf
我用的是QQ邮箱,如果是别的(如网易,163等)host和port是需要更改的,此处username是邮件发送方,密码不是邮箱密码,是邮箱的授权码,可以通过短信验证获取,可上网百度查看如何获取。
接口:
public interface SendMailService {
void sendMail(String to, String subject, String text);
}
实现类:
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String form;
@Override
public void sendMail(String to, String subject, String text) {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom(form);
mailMessage.setTo(to);
mailMessage.setSubject(subject);
mailMessage.setText(text);
try{
javaMailSender.send(mailMessage);
System.out.println("----成功-----");
}catch (Exception e){
e.printStackTrace();
System.out.println("------失败---");
}
}
}
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SendMailController {
@Autowired
private SendMailService sendMailService;
@Test
public void sendMail(){
String to = “87…24@qq.com”;//目标邮箱
String subject = “测试邮件标题”;
String text = “测试邮件内容”;
sendMailService.sendMail(to, subject, text);
}
}