SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
在跑個(gè)人應(yīng)用的時(shí)候,想引入一個(gè)通知機(jī)制,在應(yīng)用啟動(dòng)和停止的時(shí)候通知下自己(因?yàn)閼?yīng)用部署在服務(wù)器上,不想每次都到服務(wù)器上看);
- 發(fā)送短信要申請模板,而且還收費(fèi)...
- 發(fā)送手機(jī)通知又太多依賴;
- 釘釘、微信;至于釘釘和微信騷擾消息太多了,容易漏掉通知信息
剩下的就是發(fā)送郵箱、免費(fèi)、而且沒有那么多的通知干擾,郵箱App在收到郵件的時(shí)候會(huì)自動(dòng)的發(fā)生一條Push。而且配置起來很簡單... 那就動(dòng)手操作起來吧。
配置發(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、查看效果
前兩個(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é)
對個(gè)人的一些小型應(yīng)用來說,對比短信、Push、釘釘、微信等通知方式,個(gè)人認(rèn)為郵箱是簡單、免費(fèi)、最有效的通知方式。
然后給了簡單的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)容請搜索腳本之家以前的文章或繼續(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ā)送微信公眾號推送功能
- Spring?Boot整合郵箱發(fā)送郵件實(shí)例
- SpringBoot實(shí)現(xiàn)發(fā)送電子郵件
- SpringBoot整合JavaMail實(shí)現(xiàn)發(fā)郵件的項(xiàng)目實(shí)踐
相關(guān)文章
Java線上問題排查神器Arthas實(shí)戰(zhàn)原理解析
原先我們Java中我們常用分析問題一般是使用JDK自帶或第三方的分析工具如jstat、jmap、jstack、?jconsole、visualvm、Java?Mission?Control、MAT等,還有一款神器Arthas工具,可幫助程序員解決很多繁瑣的問題,感興趣的朋友一起看看吧2022-01-01
idea數(shù)據(jù)庫驅(qū)動(dòng)下載失敗的問題及解決
這篇文章主要介紹了idea數(shù)據(jù)庫驅(qū)動(dòng)下載失敗的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Java實(shí)現(xiàn)讀取項(xiàng)目中文件(.json或.properties)的方法詳解
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)讀取項(xiàng)目中文件的方法,例如.json或.properties,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04
Springboot整合Rabbitmq之Confirm和Return機(jī)制
這篇文章主要介紹了Springboot整合Rabbitmq之Confirm和Return詳解,本篇重點(diǎn)進(jìn)行Confirm?機(jī)制和Return?機(jī)制的實(shí)現(xiàn)和說明,通過實(shí)例代碼相結(jié)合給大家詳細(xì)介紹,對Springboot整合Rabbitmq相關(guān)知識(shí)感興趣的朋友一起看看吧2022-02-02
MyBatis測試報(bào)錯(cuò):Cannot?determine?value?type?from?string?&a
這篇文章主要給大家介紹了關(guān)于MyBatis測試報(bào)錯(cuò):Cannot?determine?value?type?from?string?'xxx'的解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Java 實(shí)現(xiàn)分布式服務(wù)的調(diào)用鏈跟蹤
分布式服務(wù)中完成某一個(gè)業(yè)務(wù)動(dòng)作,需要服務(wù)之間的相互協(xié)作才能完成,在這一次動(dòng)作引起的多服務(wù)的聯(lián)動(dòng)我們需要用1個(gè)唯一標(biāo)識(shí)關(guān)聯(lián)起來,關(guān)聯(lián)起來就是調(diào)用鏈的跟蹤。本文介紹了Java 實(shí)現(xiàn)分布式服務(wù)的調(diào)用鏈跟蹤的步驟2021-06-06
SpringBoot整合ElasticSearch的示例代碼
本篇文章主要介紹了SpringBoot整合ElasticSearch的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
NoHttpResponseException問題排查解決記錄分析
這篇文章主要為大家介紹了NoHttpResponseException問題排查解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

