Spring Boot實現郵件定時發送(STMP協議)

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實現定時發送

  1. Cron 表達式是一個字符串,分爲 6 或 7 個域,每一個域代表一個含義 Cron 有如下兩種語法格式:
    (1) Seconds Minutes Hours Day Month Week Year
    (2)Seconds Minutes Hours Day Month Week
  2. 實例@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 點執行一次
  3.  @Scheduled(cron="0 0 1 * * *") // 每天一點發送郵件
        public void sendMail() {
            // doSomeThing
            // sendMailService
            // doSomeThing
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章