SpringBoot實現(xiàn)發(fā)送QQ郵件的示例代碼
在跑個人應(yīng)用的時候,想引入一個通知機(jī)制,在應(yīng)用啟動和停止的時候通知下自己(因為應(yīng)用部署在服務(wù)器上,不想每次都到服務(wù)器上看);
- 發(fā)送短信要申請模板,而且還收費...
- 發(fā)送手機(jī)通知又太多依賴;
- 釘釘、微信;至于釘釘和微信騷擾消息太多了,容易漏掉通知信息
剩下的就是發(fā)送郵箱、免費、而且沒有那么多的通知干擾,郵箱App在收到郵件的時候會自動的發(fā)生一條Push。而且配置起來很簡單... 那就動手操作起來吧。
配置發(fā)送郵件
1、引入SpringBoot的Mail依賴
如果是Spring Boot應(yīng)用不需要指定版本號了
<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ā)送測試郵件
發(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、查看效果
前兩個郵件是帶附件的,最下面一個是不帶附件的;
應(yī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)用啟動通知
@Component @Slf4j public class ApplicationStartHandler implements ApplicationListener<ContextRefreshedEvent> { @Autowired JavaMailSender javaMailSender; @Override public void onApplicationEvent(ContextRefreshedEvent event) { javaMailSender.send(MailUtils.makeSimpleMessage("應(yī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é)
對個人的一些小型應(yīng)用來說,對比短信、Push、釘釘、微信等通知方式,個人認(rèn)為郵箱是簡單、免費、最有效的通知方式。
然后給了簡單的Demo演示下如何配置Spring Boot支持發(fā)送郵件,以及給一個案例在應(yīng)用啟動和停止的時候發(fā)送郵件通知給自己;
到此這篇關(guān)于SpringBoot實現(xiàn)發(fā)送QQ郵件的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot發(fā)送QQ郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用SpringBoot發(fā)送郵件的方法詳解
- SpringBoot整合郵件發(fā)送的四種方法
- SpringBoot實現(xiàn)定時發(fā)送郵件的三種方法案例詳解
- Springboot發(fā)送郵件功能的實現(xiàn)詳解
- SpringBoot?Mail郵件任務(wù)詳情
- SpringBoot?集成短信和郵件的配置示例詳解
- SpringBoot實現(xiàn)郵件發(fā)送的示例代碼
- SpringBoot實現(xiàn)發(fā)送郵件、發(fā)送微信公眾號推送功能
- Spring?Boot整合郵箱發(fā)送郵件實例
- SpringBoot實現(xiàn)發(fā)送電子郵件
- SpringBoot整合JavaMail實現(xiàn)發(fā)郵件的項目實踐
相關(guān)文章
基于mybatis-plus-generator實現(xiàn)代碼自動生成器
這篇文章專門為小白準(zhǔn)備了入門級mybatis-plus-generator代碼自動生成器,可以提高開發(fā)效率。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-05-05java.io.UncheckedIOException: Cannot delete C
本文主要介紹了java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問題,具有一定的參考價值,感興趣的可以了解一下2024-05-05解決IDEA創(chuàng)建maven項目時pom.xml沒有變藍(lán)的問題
這篇文章主要介紹了解決IDEA創(chuàng)建maven項目時pom.xml沒有變藍(lán)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08java調(diào)用webservice的.asmx接口的使用步驟
這篇文章主要介紹了java調(diào)用webservice的.asmx接口的使用步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09Java?3年面試經(jīng)驗告訴你Mybatis是如何進(jìn)行分頁的
這篇文章主要介紹了Java?3年面試經(jīng)驗告訴你Mybatis是如何進(jìn)行分頁的,對于任何ORM框架,分頁的實現(xiàn)邏輯無外乎兩種,不管怎么包裝,最終給到開發(fā)者的,只是使用上的差異而已,本文給大家講解的很明白,感興趣的朋友一起看看吧2022-09-09