springboot 定时器设置,自动推送邮件

构建定时器

配置文件

@Configurable      --定时器需要的注解
@EnableScheduling  --定时器需要的注解
@RestController   --包含component
@RequestMapping("/report")
public class ExcelReportToolTime {

定时器简易代码

/**
   * 直接指定时间间隔,例如:每天15:09
   * "0 10 0 1 * ?"  每月1号的0:10:00执行
   * "0 15 10 L * ?" 每月最后一日的上午10:15触发
   */
  @Scheduled(cron = "0 13 17 * * ?")
  private void configureTasks() {
    log.info("输出报表数据,执行静态定时任务时间:{}", LocalDateTime.now());
    mainExport();
    //发送邮件
    sendMailAttach();
  }

调用邮件发送

private void sendMailAttach(){
    String to="xxx@xxx.com";
    String subject="subject";
    String content="2020月份优惠券统计日报,请查收";
    String filePath=FourthFile;
    //SendMailUtil sendMailUtil = new SendMailUtil();
    sendMailUtil.sendAttachmentMail(to,subject,content,filePath);
  }

发送邮件

配置文件

<!-- 邮件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
			<version>2.2.6.RELEASE</version>
		</dependency>

配置文件(yml 换个写法)

# JavaMailSender 邮件发送的配置
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
#QQ邮箱的授权码(搜索查看设置授权码)
spring.mail.password=eyxyocwjamvlbeen
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.default-encoding=UTF-8

设置邮件发送帮助类

package com.xxx.mmcs.tool.execl.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * @author xxx
 */
@Slf4j
@Service
@Component  --Component默认是单例的加载,对应@Autowired使用,不然null
public class SendMailUtil{

  @Autowired
  private JavaMailSender mailSender;

  @Value("${spring.mail.username}")
  private String from;

  public void sendSimpleMail(String to, String subject, String content) {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(from);
    message.setTo(to);
    message.setSubject(subject);
    message.setText(content);
    try{
      mailSender.send(message);
      log.info("send mail message:{}", message);
      log.info("success");
    }catch (Exception e){
      log.info("fail"+e);
    }
  }

  public void sendHtmlMail(String to, String subject, String content) {
    MimeMessage message = mailSender.createMimeMessage();
    try {
      //true表示需要创建一个multipart message
      MimeMessageHelper helper = new MimeMessageHelper(message, true);
      helper.setFrom(from);
      helper.setTo(to);
      helper.setSubject(subject);
      helper.setText(content, true);
      mailSender.send(message);
      log.info("html邮件发送成功");
    } catch (MessagingException e) {
      log.info("发送html邮件时发生异常!"+e);
    }
  }

  public void sendAttachmentMail(String to, String subject, String content, String filePath) {
    MimeMessage message = mailSender.createMimeMessage();
    try {
      MimeMessageHelper helper = new MimeMessageHelper(message, true);
      helper.setFrom(from);
      helper.setTo(to);
      helper.setSubject(subject);
      helper.setText(content, true);

      FileSystemResource file = new FileSystemResource(new File(filePath));
      //File.separator="\"
      String separator="/";
      String fileName = filePath.substring(filePath.lastIndexOf(separator));

      helper.addAttachment(fileName, file);

      mailSender.send(message);
      log.info("带附件的邮件已经发送。");
    } catch (MessagingException e) {
      log.info("发送带附件的邮件时发生异常!"+e);
    }
  }
}

辅助springboot excel操作,后面持续更新

Linux上部署访问错误(引用)
https://blog.csdn.net/yeyinglingfeng/article/details/80678489
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp |grep 80 //查看所有80端口使用情况·
netstat -an | grep 3306 //查看所有3306端口使用情况·

1)	上传文件release-all.zip\mmcs-tools\mmcs--tools-xlsxReportEngine -1.0.0.0.jar到服务器
(2)	进入部署目录,执行命令:cd app/mmcs- tools
(3)	执行命令:ps -ef |grep xlsxReportEngine查询进程pid,然后再执行命令:kill -15 <pid>停止服务
(4)	备份文件,执行命令:mv mmcs-tools-xlsxReportEngine-1.0.0.0.jar mmcs- tools-xlsxReportEngine -1.0.0.0.jar
(5)	把新上传的mmcs- tools-xlsxReportEngine-1.0.0.0.jar复制到当前目录
(6)	启动进程,执行命令:nohup java -Xms512m -Xmx512m -jar mmcs-tools-xlsxReportEngine-1.0.0.0.jar --logging.config=./logback-spring.xml &7)	查看日志是否启动成功,执行命令:tail -f ../logs/mmcs-tool-xlsxReportEngine/execlreport.log

联调端口测试
telnet ip port
ssh -v -p port username@ip
curl ip:port
wget ip:port (自动下载,慎用)

打jar配置文件
1、

<!--需要引入该jar才能使bootstrap配置文件生效-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-context</artifactId>
		</dependency>

2、

<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>application.properties</include>
					#还是要包含进来
					<include>bootstrap.properties</include>
				</includes>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值