任务(邮箱、短信、异步、定时)

一、邮箱发送:qq邮箱

1、开启qq邮箱的服务和获取授权码

  ==》  ==》 

2、pom依赖

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

3、配置

spring:
  mail:
    host: smtp.qq.com
    port: 465
    username: xx8@qq.com
    password: 发短信后的授权码
    default-encoding: UTF-8
    properties:
      mail:
        debug: true
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
mail:
  fromMail:
    addr: xx8@qq.com

4、使用方法

    @Value("${mail.fromMail.addr}")
    private String from;
    @Autowired
    JavaMailSender mailSender;
    @Autowired
    private JavaMailSenderImpl mailSenderImpl;
    /**
     * 发送邮件
     * @param to 发给谁
     * @param subject 标题
     * @param text 内容
     * */
    @Override
    public void sendEmail(String to, String subject, String text) throws MessagingException {
        //简单邮件
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(text);
        mailSenderImpl.send(simpleMailMessage);
        //复杂邮件
        MimeMessage mimeMessage = mailSenderImpl.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);//true带上附件
        messageHelper.setFrom(from);
        messageHelper.setTo(to);
        messageHelper.setSubject(subject);
        messageHelper.setText("<h1>新年快乐</h1>", true);//true带上html
        messageHelper.addInline("logo.jpg", new File("logo2.jpg"));//图片的发送不对,未明
        messageHelper.addAttachment("知识整理.doc", new File("知识总结.docx"));
        mailSenderImpl.send(mimeMessage);
    }
View Code

 

二、短信发送:云片网

1、登录创建获取apikey等

2、依赖

<dependency>
    <groupId>com.yunpian.sdk</groupId>
    <artifactId>yunpian-java-sdk</artifactId>
    <version>1.2.7</version>
</dependency>

3、使用:https://www.yunpian.com/official/document/sms/zh_CN/introduction_demos_java

4、验证码匹配 

  a、有效时间

  b、防刷

  c、限制次数

 方法有:redis缓存、新建记录查询表、同一个用户发送短信接口时间限制aop切面

 

三、异步方法

1、启动类添加 @EnableAsync  //开启异步功能的注解

2、service 接口添加 @Async

3、使用场景,某些大量导入、批量插入,等待时间比较长的情况

 

四、定时任务-SpringBoot

1、启动类Application添加 @EnableScheduling //开启定时功能的注解

2、创建定时任务类添加@Compoment注解将类纳入spring bean管理,创建方法添加@Scheduled注解配置cron定时属性【@Scheduled(cron = "0 0 * * * ?")】

3、Cron 表达式:https://qqe2.com/cron 

4、使用场景:log日志定时清除,附件定时清理

5、定时另一种写法记录【Quartz

 

posted on 2020-07-01 15:51  fuanfei  阅读(140)  评论(0)    收藏  举报