● SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议
● POP3(Post Office Protocol-Version3):用于接收电子邮件的标准协议
● IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议
1.导入坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2.配置yml
spring: mail: host: smtp.qq.com username: 153*******@qq.com password: yh********** default-encoding: UTF-8
该密码为qq邮箱提供的密码
3.使用
@Service
public class SendMailImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
private String from="1538472163@qq.com";
private String to="758158603@qq.com";
private String subject="测试邮件";
//图片及连接
private String context="<img src='https://img2.baidu.com/it/u=1712371673,260788499&fm=253&fmt=auto&app=138&f=JPEG?w=628&h=500'/><a href='https://www.baidu.com'>测试邮件xxx</a>";
@Override
public void sendMail() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
//发件重命名
helper.setFrom(from+"(小安安)");
helper.setTo(to);
helper.setSubject(subject);
//使用html格式内容
helper.setText(context,true);
//添加附件
File file = new File("F:\\java后端\\lib\\activation-1.1.1.jar");
helper.addAttachment(file.getName(),file);
javaMailSender.send(mimeMessage);
}
4.定时发邮件
@Component
public class quartz {
@Autowired
private SendMailService sendMailService;
@Scheduled(cron = "0/15 * * * * ?")
public void print(){
System.out.println("邮件已发送。。。。。。");
}
@Scheduled(cron = "0/15 * * * * ?")
public void sendMail() throws MessagingException {
sendMailService.sendMail();
}
}