【愚人节专场】Java实现定时发送小情话
首先,感謝大佬的幫助~附上大佬的博客以示尊敬https://blog.csdn.net/qq_38591577/article/details/128164308?spm=1001.2014.3001.5502
功能實(shí)現(xiàn):
在名為愚人節(jié),實(shí)為告白/情人節(jié)的日子里,怎么樣才能引起TA的關(guān)注呢?不妨試著定時(shí)發(fā)送(土味)小情話(huà)來(lái)增進(jìn)感情呢~
我的老婆們收到之后都開(kāi)心的表示,不要搗鼓這些無(wú)聊的東西,不如抓緊去賺錢(qián)。
這是來(lái)自老婆的反饋:
?
咳咳,雖然被針對(duì)了,但是女人說(shuō)不要那就是要(/▽\)
框架設(shè)計(jì):
2.1?創(chuàng)建springboot項(xiàng)目
此處注意盡量不要使用springboot3.0.0,我這里用的是2.7.10。
2.2?pom依賴(lài)
<!-- hutool 依賴(lài)--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.3.2</version></dependency> <!-- 郵件 依賴(lài) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.4.3</version></dependency>2.3?application.yml (配置文件)
spring:mail:host: smtp.qq.com #郵箱發(fā)送服務(wù)器username: 181*******@qq.com #郵箱地址password: abdsjszkazkjsad #獲取郵箱第三方使用秘鑰protocol: smtpproperties.mail.smtp.port: 25 #端口default-encoding: utf-8 she:mail: 114*******@qq.commail2: 184*******@qq.commail3: 182*******@qq.com2.4 DemoApplication啟動(dòng)類(lèi)
package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication @EnableScheduling public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}2.5 SendMailService.java (接口)
package com.example.demo.service.impl;import org.springframework.stereotype.Service; @Service public interface SendMailService {void sendMessage(String sub, String message);String getLovePrattle();}2.6 SendMail.java (接口實(shí)現(xiàn)類(lèi))
package com.example.demo.service.impl; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component;import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import java.util.ArrayList;@Component public class SendMail implements SendMailService{@Resourceprivate JavaMailSender mailSender;@Value("${spring.mail.username}")private String from;@Value("${she.mail}")private String[] sheMail;@Value("${she.mail2}")private String[] sheMail2;@Value("${she.mail3}")private String[] sheMail3;public void sendMessage(String subject,String message) {ArrayList<String[]> objects = new ArrayList<>();objects.add(sheMail);objects.add(sheMail2);objects.add(sheMail3);for (String[] object : objects) {try {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);helper.setFrom(from); //發(fā)送方郵件名helper.setTo(object); //接收方郵件地址helper.setSubject(subject); //郵件標(biāo)題helper.setText(message,true); //郵件內(nèi)容,是否為html格式mailSender.send(helper.getMimeMessage());} catch (javax.mail.MessagingException e) {e.printStackTrace();}}}@Overridepublic String getLovePrattle() {String result1= HttpUtil.get("https://api.lovelive.tools/api/SweetNothings");System.out.println(result1);return result1;}}}2.7 SchedueTask.java (定時(shí)任務(wù)配置類(lèi))
package com.example.demo.config;import com.example.demo.service.impl.SendMail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled;import javax.annotation.Resource;@Configuration //主要用于標(biāo)記配置類(lèi),兼?zhèn)銫omponent的效果。 @EnableScheduling // 開(kāi)啟定時(shí)任務(wù) public class ScheduleTask {@ResourceSendMail sendMail;@Async@Scheduled(cron = "0 */1 * * * ?")//每分鐘發(fā)一次(這里是用的是cron表達(dá)式,可以上網(wǎng)查閱)public void send(){ // 土味情話(huà)String one = sendMail.getLovePrattle();sendMail.sendMessage("小點(diǎn)心",one);} }總結(jié):
試著實(shí)現(xiàn)了兩個(gè)方法,一個(gè)調(diào)用天氣,一個(gè)土味小情話(huà)。
當(dāng)然,如果魚(yú)塘里有好好多的好多魚(yú)的話(huà),也可以在配置文件里編輯多個(gè)郵箱,實(shí)現(xiàn)的時(shí)候for循環(huán)一下就可以了~~
QQ郵箱里的password一欄需要在QQ郵箱里進(jìn)行設(shè)置。
由于我們配置的是SMTP,所以需要將其設(shè)置為打開(kāi)
總結(jié)
以上是生活随笔為你收集整理的【愚人节专场】Java实现定时发送小情话的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ubuntu22.04.1无法找到Ubu
- 下一篇: 简单Java的商品模块功能