欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

0、相關(guān)協(xié)議

  • SMTP(Simple Mail Transfer Protocol):簡(jiǎn)單郵件傳輸協(xié)議,用于發(fā)送電子郵件的傳輸協(xié)議
  • POP3(Post Office Protocol - Version 3):用于接收電子郵件的標(biāo)準(zhǔn)協(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: 相關(guān)配置:

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

注意password,不是郵箱的登錄密碼,是一個(gè)授權(quán)碼,獲取方式,在QQ郵箱中是【設(shè)置】-【郵箱賬號(hào)】-【開(kāi)啟】

發(fā)送驗(yàn)證短信:

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

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

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

@Autowired    
private JavaMailSender javaMailSender;   

整合完成,下面按簡(jiǎn)單郵件和復(fù)雜郵件來(lái)寫(xiě)。簡(jiǎn)單即普通文本,復(fù)雜即超鏈接、附件等。

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

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

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

寫(xiě)個(gè)測(cè)試類看下效果:

聯(lián)不通:

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

3、發(fā)送復(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(); 
		//第二個(gè)參數(shù),即是否允許添加多部件
		//我后面要添加各種附件,所以這里必須是true       
		MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);       
		mimeMessageHelper.setFrom(from);       
		mimeMessageHelper.setTo(to);        
		mimeMessageHelper.setSubject(subject);
		//不加true,默認(rèn)當(dāng)普通文本,true即按html來(lái)解析        
		mimeMessageHelper.setText(text,true);  
		//添加附件
		File file1 = new File("logo.png"); 
		File file2 = new File("D:\\myboot.jar"); 
		//如果是手寫(xiě)文件名,記得添加個(gè)后綴,比如.png,方便在郵件里可預(yù)覽 
		mimeMessageHelper.addAttachment(file1.getName(),file1);  
		mimeMessageHelper.addAttachment("一個(gè)jar包.jar",file2);    
		javaMailSender.send(mimeMessage);    
	} catch (Exception e) {       
		e.printStackTrace();   
	}
}

注意點(diǎn):

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

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

相關(guān)文章

  • java多線程編程制作電子時(shí)鐘

    java多線程編程制作電子時(shí)鐘

    本文給大家匯總了幾個(gè)使用java多線程編程實(shí)現(xiàn)的電子時(shí)鐘的代碼,思路非常的巧妙,也都很實(shí)用,有需要的小伙伴可以參考下。
    2015-11-11
  • hibernate5.2的基本配置方法(詳解)

    hibernate5.2的基本配置方法(詳解)

    下面小編就為大家?guī)?lái)一篇hibernate5.2的基本配置方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 淺談Spring解決jar包依賴的bom

    淺談Spring解決jar包依賴的bom

    這篇文章主要介紹了淺談Spring解決jar包依賴的bom,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • mybatis中嵌套使用foreach需要注意的坑

    mybatis中嵌套使用foreach需要注意的坑

    在使用MyBatis進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),如果需要在一個(gè)大的foreach標(biāo)簽中嵌套另一個(gè)foreach,需要注意內(nèi)層foreach的item屬性不能與外層重復(fù),如果出現(xiàn)重復(fù),會(huì)導(dǎo)致綁定參數(shù)時(shí)找不到正確的參數(shù),從而拋出異常
    2024-09-09
  • 使用@Service注解出現(xiàn)No bean named 'xxxx' available]錯(cuò)誤的解決

    使用@Service注解出現(xiàn)No bean named 'xxxx'&

    這篇文章主要介紹了使用@Service注解出現(xiàn)No bean named 'xxxx' available]錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 關(guān)于ApplicationContext的啟動(dòng)流程詳解

    關(guān)于ApplicationContext的啟動(dòng)流程詳解

    ApplicationContext是Spring框架中用于管理和配置Bean的核心接口,它的啟動(dòng)流程包括準(zhǔn)備刷新、獲取BeanFactory、準(zhǔn)備BeanFactory、后置處理BeanFactory、調(diào)用BeanFactoryPostProcessor、注冊(cè)BeanPostProcessor
    2025-03-03
  • Java SpringMVC攔截器與異常處理機(jī)制詳解分析

    Java SpringMVC攔截器與異常處理機(jī)制詳解分析

    SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)
    2021-10-10
  • IDEA 2020代碼提示忽略大小寫(xiě)的問(wèn)題

    IDEA 2020代碼提示忽略大小寫(xiě)的問(wèn)題

    這篇文章主要介紹了IDEA 2020代碼提示忽略大小寫(xiě)的問(wèn)題,本文通過(guò)圖文并茂的形式給大家分享解決方法,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)數(shù)據(jù)完整案例

    java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)數(shù)據(jù)完整案例

    遞歸算法的代碼比較簡(jiǎn)潔,可讀性較好;但是在實(shí)際的業(yè)務(wù)處理中會(huì)出現(xiàn)多次的重復(fù)調(diào)用,如果處理不好,很容易出現(xiàn)StackOverflowError報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • java開(kāi)源區(qū)塊鏈jdchain入門

    java開(kāi)源區(qū)塊鏈jdchain入門

    這篇文章主要介紹了java開(kāi)源區(qū)塊鏈jdchain入門,文中為大家講解了關(guān)于部署及組件遇到的一些問(wèn)題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02

最新評(píng)論