最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合JavaMail實現(xiàn)發(fā)郵件的項目實踐

 更新時間:2023年10月07日 15:18:41   作者:-代號9527  
本文主要介紹了SpringBoot整合JavaMail實現(xiàn)發(fā)郵件的項目實踐,詳細闡述了使用SpringBoot和JavaMail發(fā)送郵件的步驟,具有一定的參考價值,感興趣的可以了解一下

0、相關協(xié)議

  • SMTP(Simple Mail Transfer Protocol):簡單郵件傳輸協(xié)議,用于發(fā)送電子郵件的傳輸協(xié)議
  • POP3(Post Office Protocol - Version 3):用于接收電子郵件的標準協(xié)議
  • IMAP(Internet Mail Access Protocol):互聯(lián)網(wǎng)消息協(xié)議,是POP3的替代協(xié)議

1、SpringBoot整合JavaMail

STEP1: 加入JavaMail起步依賴:

<dependency>    
	<groupId>org.springframework.boot</groupId>    
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

STEP2: 相關配置:

spring:  
  mail:    
    host: smtp.qq.com  # 發(fā)郵件,smtp協(xié)議,后面.運營商    
    username: *********@qq.com    
    password: *********  # 不是郵箱的密碼,是下面獲取的一個授權碼

注意password,不是郵箱的登錄密碼,是一個授權碼,獲取方式,在QQ郵箱中是【設置】-【郵箱賬號】-【開啟】

發(fā)送驗證短信:

然后在上個頁面點保存更改,(記得點保存更改)復制這個授權碼就是password的值,即可配置郵件客戶端成功。

其他類型的郵箱獲取方式類似,比如163:

STEP3: 注入JavaMailSender對象,定義發(fā)送郵件的接口

@Autowired    
private JavaMailSender javaMailSender;   

整合完成,下面按簡單郵件和復雜郵件來寫。簡單即普通文本,復雜即超鏈接、附件等。

2、發(fā)送簡單郵件

以下用QQ郵箱給163郵箱發(fā)一個簡單文本的郵件:

//定義接口
public interface SendMailService{
	void sendMail();
}
//實現(xiàn)類
@Service
public class SendMailServiceImpl implements SendMailService { 
	@Autowired    
	private JavaMailSender javaMailSender;   
	//這些值也可以不硬編碼,寫在配置文件中@Value取值
	private String from = "********@qq.com";	 // 發(fā)送人    
	private String to = "********@126.com";	 // 接收人   
	private String subject = "測試郵件";		 // 郵件主題   
	private String text = "測試郵件正文";	 	// 郵件內(nèi)容
	@Override    
	public void sendMail() {       
		SimpleMailMessage mailMessage = new SimpleMailMessage();  
		//mailMessage.setFrom(from); 
		//from后面加個名字,比如xxx公司,不然發(fā)送發(fā)一串郵箱數(shù)字,誰知道你是誰      
		mailMessage.setFrom(from + "別名");   
		//這里的to是個可變長String,即可發(fā)送多人
		mailMessage.setTo(to);        
		mailMessage.setSubject(subject);        
		mailMessage.setText(text);
		//mailMessage.setSendDate();        //設置發(fā)送的時間
		//其他設置自行set
		javaMailSender.send(mailMessage);     //發(fā)送
	}
}

寫個測試類看下效果:

聯(lián)不通:

我在公司內(nèi)網(wǎng)寫的,網(wǎng)絡不通,不是25端口被禁的原因,在外網(wǎng)是可以ping通smtp.qq.com這個host的。先跳過了。

3、發(fā)送復雜郵件

正文為html,比如超鏈接或者圖片。以及發(fā)送附件:

//超鏈接
private String text = "<a ;
//圖片
private String img = "<img src='https://pic35.photophoto.cn/20150511/0034034892281415_b.jpg' />";
@Override
public void sendMail() {    
	try {        
		MimeMessage mimeMessage = javaMailSender.createMimeMessage(); 
		//第二個參數(shù),即是否允許添加多部件
		//我后面要添加各種附件,所以這里必須是true       
		MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);       
		mimeMessageHelper.setFrom(from);       
		mimeMessageHelper.setTo(to);        
		mimeMessageHelper.setSubject(subject);
		//不加true,默認當普通文本,true即按html來解析        
		mimeMessageHelper.setText(text,true);  
		//添加附件
		File file1 = new File("logo.png"); 
		File file2 = new File("D:\\myboot.jar"); 
		//如果是手寫文件名,記得添加個后綴,比如.png,方便在郵件里可預覽 
		mimeMessageHelper.addAttachment(file1.getName(),file1);  
		mimeMessageHelper.addAttachment("一個jar包.jar",file2);    
		javaMailSender.send(mimeMessage);    
	} catch (Exception e) {       
		e.printStackTrace();   
	}
}

注意點:

  • 不再用簡單消息對象,而是MimeMessage對象,并把它包裝成mimeMessageHelper對象
  • 要傳附件的話,mimeMessageHelper對象構造方法的第二個參數(shù)傳true
  • setText方法重載,第二個參數(shù)傳true,就是講text按照html來解析,而不是普通文本
  • 注意最后send的還是MimeMessage對象,不是mimeMessageHelper對象

到此這篇關于SpringBoot整合JavaMail實現(xiàn)發(fā)郵件的項目實踐的文章就介紹到這了,更多相關SpringBoot JavaMail發(fā)郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java實現(xiàn)word,pdf轉(zhuǎn)html并保留格式

    Java實現(xiàn)word,pdf轉(zhuǎn)html并保留格式

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)將word,pdf轉(zhuǎn)換為html并保留格式,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-07-07
  • java解析xml之dom4j解析xml示例分享

    java解析xml之dom4j解析xml示例分享

    DOM4J具有性能優(yōu)異、功能強大和極端易用使用的特點,只要懂得DOM基本概念,就可以通過dom4j的api文檔來解析xml,dom4j是一套開源的api。實際項目中,往往選擇dom4j來作為解析xml的利器
    2014-01-01
  • JDK1.7中HashMap的死循環(huán)問題及解決方案

    JDK1.7中HashMap的死循環(huán)問題及解決方案

    這篇文章主要為大家介紹了JDK1.7中HashMap的死循環(huán)問題及解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    這篇文章主要介紹了JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟,幫助大家更好的理解和學習使用Guava EventBus,感興趣的朋友可以了解下
    2021-03-03
  • java中String.matches方法使用

    java中String.matches方法使用

    String.matches()方法用于檢測字符串是否符合特定的正則表達式,詳細介紹了如何使用String.matches()配合不同的正則表達式來匹配各種特定格式的字符串,感興趣的可以了解一下
    2024-09-09
  • Java基礎-封裝和繼承

    Java基礎-封裝和繼承

    這篇文章主要介紹了Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析的相關內(nèi)容,具有一定參考價值,需要的朋友可以了解下希望可以幫助到你
    2021-07-07
  • Java?Map的compute方法舉例詳解

    Java?Map的compute方法舉例詳解

    Java中的Map是一種用于存儲鍵值對的數(shù)據(jù)結構,它提供了一系列的方法來操作和訪問其中的元素,下面這篇文章主要給大家介紹了關于Java?Map的compute方法舉例詳解的相關資料,需要的朋友可以參考下
    2024-06-06
  • Java GZip 基于內(nèi)存實現(xiàn)壓縮和解壓的方法

    Java GZip 基于內(nèi)存實現(xiàn)壓縮和解壓的方法

    這篇文章主要介紹了Java GZip 基于內(nèi)存實現(xiàn)壓縮和解壓的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • JDK環(huán)境變量配置的具體操作步驟

    JDK環(huán)境變量配置的具體操作步驟

    本篇文章介紹了,JDK環(huán)境變量配置的具體操作步驟。需要的朋友參考下
    2013-05-05
  • SpringBoot利用MDC機制過濾單次請求的所有日志

    SpringBoot利用MDC機制過濾單次請求的所有日志

    在服務出現(xiàn)故障時,我們經(jīng)常需要獲取一次請求流程里的所有日志進行定位 ,如何將一次數(shù)據(jù)上報請求中包含的所有業(yè)務日志快速過濾出來,就是本文要介紹的,需要的朋友可以參考下
    2024-04-04

最新評論

湾仔区| 芜湖市| 新野县| 呼图壁县| 新津县| 明星| 中阳县| 准格尔旗| 通州市| 桓台县| 吉安县| 赣榆县| 四平市| 康保县| 瑞丽市| 天峻县| 海原县| 琼中| 玛纳斯县| 繁峙县| 旬阳县| 晋宁县| 岳阳县| 鸡西市| 舟曲县| 福贡县| 金门县| 阿勒泰市| 遵义市| 济阳县| 章丘市| 密云县| 会理县| 七台河市| 玉门市| 东兰县| 靖安县| 富蕴县| 长垣县| 宣汉县| 河曲县|