SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
在跑個(gè)人應(yīng)用的時(shí)候,想引入一個(gè)通知機(jī)制,在應(yīng)用啟動(dòng)和停止的時(shí)候通知下自己(因?yàn)閼?yīng)用部署在服務(wù)器上,不想每次都到服務(wù)器上看);
- 發(fā)送短信要申請(qǐng)模板,而且還收費(fèi)...
- 發(fā)送手機(jī)通知又太多依賴;
- 釘釘、微信;至于釘釘和微信騷擾消息太多了,容易漏掉通知信息
剩下的就是發(fā)送郵箱、免費(fèi)、而且沒有那么多的通知干擾,郵箱App在收到郵件的時(shí)候會(huì)自動(dòng)的發(fā)生一條Push。而且配置起來很簡(jiǎn)單... 那就動(dòng)手操作起來吧。
配置發(fā)送郵件
1、引入SpringBoot的Mail依賴
如果是Spring Boot應(yīng)用不需要指定版本號(hào)了
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2、配置郵箱發(fā)送的Bean
如下配置
在配置前獲取QQ郵箱授權(quán)碼;QQ郵件在Spring的Bean中密碼為授權(quán)碼。
@Configuration public class MailConfig { @Bean public JavaMailSender getJavaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); // mailSender.setHost("smtp.gmail.com"); mailSender.setHost("smtp.qq.com"); mailSender.setPort(587); mailSender.setUsername("aihehe123@foxmail.com"); mailSender.setPassword("這里是QQ郵箱的授權(quán)碼"); Properties props = mailSender.getJavaMailProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.debug", "true"); return mailSender; } }
3、發(fā)送測(cè)試郵件
發(fā)送普通文本
SimpleMailMessage simpleMessage = new SimpleMailMessage(); simpleMessage.setFrom("aihehe123@foxmail.com"); simpleMessage.setTo("aihehe123@foxmail.com"); simpleMessage.setSubject("test"); simpleMessage.setText("hello"); javaMailSender.send(simpleMessage);
發(fā)送帶附件的文本
MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true); mimeMessageHelper.setFrom("aihehe123@foxmail.com"); mimeMessageHelper.setTo("aihehe123@foxmail.com"); mimeMessageHelper.setSubject("test"); mimeMessageHelper.setText("hello"); String path = "http://gif.aihe.space/dd467677ea35485da3d12326fcf36e5d.gif"; UrlResource fileUrlResource = new UrlResource(path); mimeMessageHelper.addAttachment(UrlUtils.parseUrlName(path), fileUrlResource); javaMailSender.send(message);
4、查看效果
前兩個(gè)郵件是帶附件的,最下面一個(gè)是不帶附件的;
應(yīng)用啟動(dòng)&停止郵件通知
1、配置發(fā)送郵件的模板
public class MailUtils { public static SimpleMailMessage makeSimpleMessage(String subject,String text){ SimpleMailMessage simpleMessage = new SimpleMailMessage(); simpleMessage.setFrom("aihehe123@foxmail.com"); simpleMessage.setTo("aihehe123@foxmail.com"); simpleMessage.setSubject(subject); simpleMessage.setText(text); return simpleMessage; } }
2、應(yīng)用啟動(dòng)通知
@Component @Slf4j public class ApplicationStartHandler implements ApplicationListener<ContextRefreshedEvent> { @Autowired JavaMailSender javaMailSender; @Override public void onApplicationEvent(ContextRefreshedEvent event) { javaMailSender.send(MailUtils.makeSimpleMessage("應(yīng)用啟動(dòng)通知","")); log.info("app start mail sended"); } }
3、應(yīng)用停止通知;
public class XXXApplication { @Autowired JavaMailSender javaMailSender; public static void main(String[] args) { SpringApplication.run(XXXApplication.class, args); } @PreDestroy public void onExit() { log.info("###STOPing###"); javaMailSender.send(MailUtils.makeSimpleMessage("應(yīng)用停止通知", "")); log.info("###STOP FROM THE LIFECYCLE###"); } }
總結(jié)
對(duì)個(gè)人的一些小型應(yīng)用來說,對(duì)比短信、Push、釘釘、微信等通知方式,個(gè)人認(rèn)為郵箱是簡(jiǎn)單、免費(fèi)、最有效的通知方式。
然后給了簡(jiǎn)單的Demo演示下如何配置Spring Boot支持發(fā)送郵件,以及給一個(gè)案例在應(yīng)用啟動(dòng)和停止的時(shí)候發(fā)送郵件通知給自己;
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot發(fā)送QQ郵件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用SpringBoot發(fā)送郵件的方法詳解
- SpringBoot整合郵件發(fā)送的四種方法
- SpringBoot實(shí)現(xiàn)定時(shí)發(fā)送郵件的三種方法案例詳解
- Springboot發(fā)送郵件功能的實(shí)現(xiàn)詳解
- SpringBoot?Mail郵件任務(wù)詳情
- SpringBoot?集成短信和郵件的配置示例詳解
- SpringBoot實(shí)現(xiàn)郵件發(fā)送的示例代碼
- SpringBoot實(shí)現(xiàn)發(fā)送郵件、發(fā)送微信公眾號(hào)推送功能
- Spring?Boot整合郵箱發(fā)送郵件實(shí)例
- SpringBoot實(shí)現(xiàn)發(fā)送電子郵件
- SpringBoot整合JavaMail實(shí)現(xiàn)發(fā)郵件的項(xiàng)目實(shí)踐
相關(guān)文章
基于mybatis-plus-generator實(shí)現(xiàn)代碼自動(dòng)生成器
這篇文章專門為小白準(zhǔn)備了入門級(jí)mybatis-plus-generator代碼自動(dòng)生成器,可以提高開發(fā)效率。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-05-05java.io.UncheckedIOException: Cannot delete C
本文主要介紹了java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問題,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05javaweb登錄驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了javaweb登錄驗(yàn)證碼的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11解決IDEA創(chuàng)建maven項(xiàng)目時(shí)pom.xml沒有變藍(lán)的問題
這篇文章主要介紹了解決IDEA創(chuàng)建maven項(xiàng)目時(shí)pom.xml沒有變藍(lán)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08java調(diào)用webservice的.asmx接口的使用步驟
這篇文章主要介紹了java調(diào)用webservice的.asmx接口的使用步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java?3年面試經(jīng)驗(yàn)告訴你Mybatis是如何進(jìn)行分頁(yè)的
這篇文章主要介紹了Java?3年面試經(jīng)驗(yàn)告訴你Mybatis是如何進(jìn)行分頁(yè)的,對(duì)于任何ORM框架,分頁(yè)的實(shí)現(xiàn)邏輯無外乎兩種,不管怎么包裝,最終給到開發(fā)者的,只是使用上的差異而已,本文給大家講解的很明白,感興趣的朋友一起看看吧2022-09-09windows下jar包開機(jī)自動(dòng)重啟的步驟
這篇文章主要給大家介紹了關(guān)于windows下jar包開機(jī)自動(dòng)重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11