springboot定时发送html邮件
一、pom.xml添加邮件依赖
<!--发邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二、application.yml配置如下
spring:
mail:
host: smtp.qq.com
port: 25
username: [email protected]
password: xxxxxx
default-encoding: UTF-8
三、启动类注解
package czy.com.dldl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class DldlApplication {
public static void main(String[] args) {
SpringApplication.run(DldlApplication.class, args);
}
}
四、发送邮件代码如下
package czy.com.dldl.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
/**
* @author Czy--feeling
* @create 2019-03-13 4:12 PM
**/
@Component
public class EmailService {
@Autowired
JavaMailSender javaMailSender;
public void sendMail(String from, String to, String cc, String subject, String content) throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setTo(to);
if (!"".equals(cc) && cc != null) {
mimeMessageHelper.setCc(cc);
}
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, true);
javaMailSender.send(mimeMessage);
}
}
五、定时任务代码如下
package czy.com.dldl.task;
import czy.com.dldl.utils.EmailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
/**
* @author Czy--feeling
* @create 2019-03-13 4:12 PM
**/
@Component
@Slf4j
public class Task {
@Autowired
private EmailService emailService;
/**
* 发件人
*/
private String from;
/**
* 收件人
*/
private String to;
/**
* 抄送人
*/
private String cc;
/**
* 邮件主题
*/
private String subject;
/**
* 邮件内容
*/
private String content;
@Scheduled(cron = "0/3 * * * * ? ")//每3秒定时执行
public void execJob() throws MessagingException {
log.info("------------定时任务开启同步消息通知------------");
from = "[email protected]";
to = "[email protected]";
cc = "";
subject = "测试";
content =
"<html>\n" +
"<head>\n" +
"<meta charset=\"utf-8\"/>\n" +
"<title>html模板</title>\n" +
"</head>\n" +
"<body>\n" +
"<table border=\"1\" bordercolor=\"#ff7b00\" cellspacing=\"0\" cellpadding=\"0\" width=\"600\" height100>\n" +
"<caption>历史战绩</caption>\n" +
"<tr align=\"center\">\n" +
"<th>账号</th>\n" +
"<th>英雄联盟</th>\n" +
"<th>穿越火线</th>\n" +
"<th>绝地求生</th>\n" +
"<th>刺激战场</th>\n" +
"<th>斗罗大陆</th>\n" +
"</tr>\n" +
"<tr>\n" +
"<td>君莫笑</td>\n" +
"<td>9994</td>\n" +
"<TD>9989</TD>\n" +
"<td>9987</td>\n" +
"<td>9956</td>\n" +
"<td>9997</td>\n" +
"</tr>\n" +
"<tr>\n" +
"<td>苏沐橙</td>\n" +
"<td>9994</td>\n" +
"<td>9987</td>\n" +
"<td>9984</td>\n" +
"<td>9986</td>\n" +
"<td>9987</td>\n" +
"</tr>\n" +
"<tr>\n" +
"<td>苏沐秋</td>\n" +
"<td>9982</td>\n" +
"<td>9984</td>\n" +
"<td>9987</td>\n" +
"<td>9986</td>\n" +
"<td>9977</td>\n" +
"</tr>\n" +
"</table>\n" +
"</body>\n" +
"</html>\n";
emailService.sendMail(from, to, cc, subject, content);
log.info("------------定时任务结束同步消息通知------------");
}
}
六、idea启动springboot
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=53656 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/tools.jar:/Users/macbook/intellij-workspace/DLDL/target/classes:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.1.3.RELEASE/spring-boot-starter-web-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter/2.1.3.RELEASE/spring-boot-starter-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot/2.1.3.RELEASE/spring-boot-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.1.3.RELEASE/spring-boot-autoconfigure-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.1.3.RELEASE/spring-boot-starter-logging-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/macbook/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/macbook/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.11.2/log4j-to-slf4j-2.11.2.jar:/Users/macbook/.m2/repository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar:/Users/macbook/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/Users/macbook/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/macbook/.m2/repository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.1.3.RELEASE/spring-boot-starter-json-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.8/jackson-datatype-jdk8-2.9.8.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.8/jackson-datatype-jsr310-2.9.8.jar:/Users/macbook/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.8/jackson-module-parameter-names-2.9.8.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.1.3.RELEASE/spring-boot-starter-tomcat-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.16/tomcat-embed-core-9.0.16.jar:/Users/macbook/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.16/tomcat-embed-el-9.0.16.jar:/Users/macbook/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.16/tomcat-embed-websocket-9.0.16.jar:/Users/macbook/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.14.Final/hibernate-validator-6.0.14.Final.jar:/Users/macbook/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/Users/macbook/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/macbook/.m2/repository/com/fasterxml/classmate/1.4.0/classmate-1.4.0.jar:/Users/macbook/.m2/repository/org/springframework/spring-web/5.1.5.RELEASE/spring-web-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-beans/5.1.5.RELEASE/spring-beans-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-webmvc/5.1.5.RELEASE/spring-webmvc-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-aop/5.1.5.RELEASE/spring-aop-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-context/5.1.5.RELEASE/spring-context-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-expression/5.1.5.RELEASE/spring-expression-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/projectlombok/lombok/1.18.6/lombok-1.18.6.jar:/Users/macbook/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/macbook/.m2/repository/org/springframework/spring-core/5.1.5.RELEASE/spring-core-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-jcl/5.1.5.RELEASE/spring-jcl-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/boot/spring-boot-starter-mail/2.1.3.RELEASE/spring-boot-starter-mail-2.1.3.RELEASE.jar:/Users/macbook/.m2/repository/org/springframework/spring-context-support/5.1.5.RELEASE/spring-context-support-5.1.5.RELEASE.jar:/Users/macbook/.m2/repository/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar:/Users/macbook/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar czy.com.dldl.DldlApplication
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE)
2019-03-13 16:32:39.843 INFO 8923 --- [ main] czy.com.dldl.DldlApplication : Starting DldlApplication on MacBook-Pro.local with PID 8923 (/Users/macbook/intellij-workspace/DLDL/target/classes started by macbook in /Users/macbook/intellij-workspace/DLDL)
2019-03-13 16:32:39.845 INFO 8923 --- [ main] czy.com.dldl.DldlApplication : No active profile set, falling back to default profiles: default
2019-03-13 16:32:40.670 INFO 8923 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-03-13 16:32:40.690 INFO 8923 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-03-13 16:32:40.690 INFO 8923 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.16]
2019-03-13 16:32:40.696 INFO 8923 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/macbook/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2019-03-13 16:32:40.761 INFO 8923 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-03-13 16:32:40.761 INFO 8923 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 887 ms
2019-03-13 16:32:40.976 INFO 8923 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-03-13 16:32:41.104 INFO 8923 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler'
2019-03-13 16:32:41.159 INFO 8923 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-03-13 16:32:41.162 INFO 8923 --- [ main] czy.com.dldl.DldlApplication : Started DldlApplication in 16.648 seconds (JVM running for 22.194)
2019-03-13 16:32:42.005 INFO 8923 --- [ scheduling-1] czy.com.dldl.task.Task : ------------定时任务开启同步消息通知------------
2019-03-13 16:32:53.000 INFO 8923 --- [ scheduling-1] czy.com.dldl.task.Task : ------------定时任务结束同步消息通知------------
邮件显示如下: