SpringBoot-拓展

邮件

依赖

<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-mailartifactId>

配置

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("[email protected]");
    simpleMailMessage.setTo("[email protected]");
    // 发送邮件
    mailSender.send(simpleMailMessage);
}
// 复杂邮件
@Test
void mimeMail() throws MessagingException {
    MimeMessage mimeMessage = mailSender.createMimeMessage();
    // 组装
    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
    helper.setSubject("主题");
    // true:开启html支持
    helper.setText("邮件内容",true);
    // 附件
    helper.addAttachment("1.jpg", new File(""));
    helper.setFrom("[email protected]");
    helper.setTo("[email protected]");
    // 发送邮件
    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("定时任务执行");
    }
}

你可能感兴趣的:(spring,boot)