1.pom.xml 添加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.application添加配置信息
# 郵件服務器配置
spring.mail.host=smtp.qq.com
# 必須爲STMP服務器開啓賬戶
spring.mail.username=**********@qq.com
# STMP服務器授權碼
spring.mail.password=*****
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3.STMP服務器開啓(騰訊QQ)
進入郵箱首頁->設置->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(開啓POP3/STMP服務或者IMAP/STMP服務);開啓後,生成授權碼,用於驗證登錄;如果忘記可以再次生成,每次需要短信費用;
授權碼生成後,添加在spring.mail.password=授權碼,此時配置信息完成;
4. 測試
@Resource
private JavaMailSender javaMailSender;
@Test
public void testMail() throws Exception{
final MimeMessage mimeMessage = this.javaMailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
# 申請STMP服務器的QQ賬戶
message.setFrom("賬戶QQ****@qq.com");
# 接收郵箱賬戶
message.setTo("任意郵箱:123郵箱,qq郵箱,阿里雲郵箱都可以");
message.setSubject("中央財經大學邀請函");
message.setText("親愛**同學" +
" 醒醒啦,別睡了");
this.javaMailSender.send(mimeMessage);
}
測試成功後,可以根據業務需求自己編寫工具類,方便郵件的發送。
5.@Scheduled實現定時發送
- Cron 表達式是一個字符串,分爲 6 或 7 個域,每一個域代表一個含義 Cron 有如下兩種語法格式:
(1) Seconds Minutes Hours Day Month Week Year
(2)Seconds Minutes Hours Day Month Week - 實例@Scheduled(cron = "0 0 1 1 1 ?")//每年一月的一號的 1:00:00 執行一次
@Scheduled(cron = "0 0 1 1 1,6 ?") //一月和六月的一號的 1:00:00 執行一次
@Scheduled(cron = "0 0 1 1 1,4,7,10 ?") //每個季度的第一個月的一號的 1:00:00 執行一次
@Scheduled(cron = "0 0 1 1 * ?")//每月一號 1:00:00 執行一次
@Scheduled(cron="0 0 1 * * *") //每天凌晨 1 點執行一次 -
@Scheduled(cron="0 0 1 * * *") // 每天一點發送郵件 public void sendMail() { // doSomeThing // sendMailService // doSomeThing }