SpringBoot发送邮件、异步、定时——基础

SpringBoot发送邮件

对应的pom.xml中的相关依赖

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


<!--        必须含有 否则会有空指针异常 -->
<!--        包含支持缓存cache   JCA JMX 邮件服务 任务任务计划 Scheduling方面的类 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

对应的配置文件

发送邮件存在,纯文本,含有html标签的发送邮件,含有图片和附件的的邮件,


spring.mail.host=smtp.qq.com
spring.mail.username=qq账号@qq.com
spring.mail.password=授权码(切记打开stmp)
spring.mail.port=465


# qq使用smtps  163使用smtp
spring.mail.protocol=smtps


spring.mail.default-encoding=UTF-8
#  有关smtp服务的开启
#  qq邮箱必须有这个  安全验证机制
spring.mail.properties.mail.sll.enable=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

@SpringBootTest
class SpringBootEmailApplicationTests {


    @Autowired
    private JavaMailSender mailSender;

    //  发送纯文本的邮件
    @Test
    void contextLoads() {

        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("邮件主题:服务器运用");
        message.setText("测试邮件");
        message.setTo("@163.com");
        message.setFrom("@qq.com");

        mailSender.send(message);
    }

    //     含有html标签的邮件
    @Test
    void contextLoads2() throws MessagingException {

        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);


//        附件
//        helper.addAttachment();
//        邮件主题
        helper.setSubject("验证码");
        helper.setText("", true);
        helper.setTo("@163.com");
        helper.setFrom("@qq.com");

        mailSender.send(message);
    }


    //     含有图片的邮件
    @Test
    void contextLoads3() throws MessagingException {

        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message,true);

        String id = "test";
        String ImagePath = "图片路径(尽量避免路径中出现中文)";


//        附件   传入附件的名字和   类型是文件
//        helper.addAttachment();
//        邮件主题



        helper.setSubject("含有图片的邮件");
        helper.setText("<h1>图片:</h1><img src='cid:" + id + "'/>", true);
        //  加载绝对路径的资源
        FileSystemResource resource = new FileSystemResource(new File(ImagePath));

//        内嵌图片
        helper.addInline(id, resource);

        helper.setTo("@qq.com");
        helper.setFrom("@qq.com");

        mailSender.send(message);
    }
}

发送异步
@EnableAsync 开启异步注解
@Async 异步方法

异步进行邮件调用类比于平时的短信验证就属于异步执行

Controller

@RestController
public class AsyncController {

    @Autowired
    private AsynService asynService;

    @RequestMapping("/sendEamil")
    public String sendEamil(){
        asynService.emial();
        return "ok";
    }

}

Service

@Service
public class AsynService {

    @Autowired
    private JavaMailSender mailSender;

//     执行异步发送邮件的方法
    @Async
    public void emial(){}

对应的定时发送 采用的是CRON表达式

@EnableScheduling 开启定时任务
@Scheduled 定时方法

简单的CRON表达式
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值