SpringBoot-拓展

2024-01-09 22:22:32

邮件

依赖

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>

配置

spring.mail.username=邮箱
spring.mail.password=授权码
spring.mail.host=smtp.qq.com
# 开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

使用

@Autowired
private JavaMailSenderImpl mailSender;
// 简单邮件
@Test
void sendMail() {
    SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
    simpleMailMessage.setSubject("主题");
    simpleMailMessage.setText("邮件内容");
    simpleMailMessage.setFrom("xxx@qq.com");
    simpleMailMessage.setTo("xxx@163.com");
    // 发送邮件
    mailSender.send(simpleMailMessage);
}
// 复杂邮件
@Test
void mimeMail() throws MessagingException {
    MimeMessage mimeMessage = mailSender.createMimeMessage();
    // 组装
    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
    helper.setSubject("主题");
    // true:开启html支持
    helper.setText("<font style='color:red'>邮件内容</font>",true);
    // 附件
    helper.addAttachment("1.jpg", new File(""));
    helper.setFrom("xxx@qq.com");
    helper.setTo("xxx@163.com");
    // 发送邮件
    mailSender.send(mimeMessage);
}

异步

启动类添加@EnableAsync
方法上添加@Async

定时任务

启动类添加@EnableScheduling

// 注入容器
@Service
public class ScheduledService {
    // (秒 分 时 日 月 周几 年)
    // ("0/2 1-50/5 11,12 L * 5L 1990")
    // '?、*'是通配符,'?'只能出现一次,'/'表示时间间隔,','表示多个时间,'1L'表示最后一个,'-'表示范围
    @Scheduled(cron = "0/2 * * * * ?")
    public void excu(){
        System.out.println("定时任务执行");
    }
}

文章来源:https://blog.csdn.net/h_e_l_l_o_______/article/details/135428576
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。