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

SpringBoot使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件

 更新時(shí)間:2023年12月20日 09:44:57   作者:miaowYHu  
JavaMailSender是Spring Framework中的一個(gè)接口,用于發(fā)送電子郵件,本文主要為大家詳細(xì)介紹了SpringBoot如何使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件,需要的可以參考下

用了這么久的Spring Boot,我們對(duì)Spring Boot的了解應(yīng)該也逐步進(jìn)入正軌了,這篇文章講的案例也在我們的實(shí)際開(kāi)發(fā)中算是比較實(shí)用的了,畢竟我們完成注冊(cè)功能和對(duì)用戶(hù)群發(fā)消息,都可以采用到郵箱發(fā)送功能,往下看,我們來(lái)看看什么是JavaMailSender。

什么是JavaMailSender

JavaMailSenderSpring Framework中的一個(gè)接口,用于發(fā)送電子郵件。它是Spring對(duì)JavaMail API的封裝,提供了更簡(jiǎn)單和更方便的方式來(lái)發(fā)送郵件。

JavaMailSender接口定義了一組發(fā)送郵件的方法,包括發(fā)送簡(jiǎn)單文本郵件、發(fā)送帶附件的郵件、發(fā)送HTML格式的郵件等。它隱藏了底層JavaMail API的復(fù)雜性,使得在Spring應(yīng)用中發(fā)送郵件變得更加容易。

Spring Boot中,你可以通過(guò)依賴(lài)注入JavaMailSender來(lái)使用它。通過(guò)配置郵件服務(wù)器的相關(guān)信息,你可以使用JavaMailSender發(fā)送郵件。

JavaMailSender接口的常用實(shí)現(xiàn)類(lèi)是JavaMailSenderImpl,它是基于JavaMail API實(shí)現(xiàn)的。除了JavaMailSenderImpl,Spring還提供了其他的實(shí)現(xiàn)類(lèi),例如MockMailSender用于測(cè)試目的。

使用JavaMailSender,你可以方便地發(fā)送郵件,設(shè)置收件人、發(fā)件人、主題、正文等信息,并可以附加文件、設(shè)置抄送、密送等功能。

JavaMailSender是Spring Framework中用于發(fā)送郵件的接口,它簡(jiǎn)化了郵件發(fā)送的過(guò)程,提供了更高級(jí)的抽象和便利性。

來(lái)看一個(gè)案例:

引入依賴(lài):

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

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

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

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

如其他自動(dòng)化配置一樣,我們?cè)谝胂嚓P(guān)依賴(lài)后就需要在application.properties文件中進(jìn)行配置:

spring.mail.host=your-smtp-host
spring.mail.port=your-smtp-port
spring.mail.username=your-username
spring.mail.password=your-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

請(qǐng)將your-smtp-host、your-smtp-port、your-username和your-password替換為你的實(shí)際信息。

然后,在你的代碼中,注入JavaMailSender并使用它來(lái)發(fā)送郵件。以下是一個(gè)簡(jiǎn)單的示例:

例如我們采用qq郵箱:

spring.mail.host=smtp.qq.com
spring.mail.username=用戶(hù)名
spring.mail.password=密碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

這里的密碼指你獲取的郵箱的授權(quán)碼

在這里獲取你的相關(guān)信息,

@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

template.vm

<html>
<body>
    <h3>你好, ${username}, 這是一封模版引擎封裝的郵箱信!</h3>
</body>
</html>

之后咱們創(chuàng)建一個(gè)測(cè)試類(lèi)進(jìn)行:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class ApplicationTests {

	@Autowired
	private JavaMailSender mailSender;
	@Autowired
	private VelocityEngine velocityEngine;

	//簡(jiǎn)單的郵件發(fā)送
	@Test
	public void sendSimpleMail() throws Exception {

		SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom("28****70@qq.com");
		message.setTo("28****70@qq.com");
		message.setSubject("主題:簡(jiǎn)單郵件");
		message.setText("簡(jiǎn)單的郵件內(nèi)容");

		mailSender.send(message);
	}

	//攜帶附件的郵件
	@Test
	public void sendAttachmentsMail() throws Exception {

		MimeMessage mimeMessage = mailSender.createMimeMessage();

		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("28****70@qq.com");
		helper.setTo("28****70@qq.com");
		helper.setSubject("主題:有附件");
		helper.setText("內(nèi)容:有附件的郵件");

		FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
		helper.addAttachment("miaow-1.jpg", file);
		helper.addAttachment("miaow-2.jpg", file);
		helper.addAttachment("miaow-2.jpg", file);
		mailSender.send(mimeMessage);
	}

		//發(fā)送嵌入靜態(tài)資源
	@Test
	public void sendInlineMail() throws Exception {

		MimeMessage mimeMessage = mailSender.createMimeMessage();

		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("28****70@qq.com");
		helper.setTo("28****70@qq.com");
		helper.setSubject("主題:嵌入靜態(tài)資源");
		helper.setText("<html><body><img src=\"cid:weixin\" ></body></html>", true);

		FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
		helper.addInline("weixin", file);

		mailSender.send(mimeMessage);
	}

		//發(fā)送模版附件
	@Test
	public void sendTemplateMail() throws Exception {

		MimeMessage mimeMessage = mailSender.createMimeMessage();

		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("28****70@qq.com");
		helper.setTo("28****70@qq.com");
		helper.setSubject("主題:模板郵件");

		Map<String, Object> model = new HashedMap();
		model.put("username", "miaow");
		String text = VelocityEngineUtils.mergeTemplateIntoString(
				velocityEngine, "template.vm", "UTF-8", model);
		helper.setText(text, true);

		mailSender.send(mimeMessage);
	}
}

在項(xiàng)目下放置:weixin.jpg圖片,圖片隨便你怎么玩

這樣,你就可以在Spring Boot中使用JavaMailSender發(fā)送郵件了。記得替換示例代碼中的實(shí)際信息,以便與你的郵件服務(wù)器配置相匹配。

在使用JavaMailSender發(fā)送郵件時(shí),有一些注意事項(xiàng)需要注意:

郵件服務(wù)器的配置

在使用JavaMailSender發(fā)送郵件之前,你需要配置郵件服務(wù)器的相關(guān)信息,包括SMTP服務(wù)器地址、端口號(hào)、用戶(hù)名、密碼等。這些信息可以通過(guò)在配置文件中添加相關(guān)屬性來(lái)實(shí)現(xiàn)。

郵件內(nèi)容的設(shè)置

在設(shè)置郵件內(nèi)容時(shí),你需要注意郵件的主題、正文、收件人、發(fā)件人等信息的設(shè)置。如果你需要發(fā)送HTML格式的郵件,需要將郵件內(nèi)容設(shè)置為HTML格式,并設(shè)置相應(yīng)的郵件頭信息。

郵件發(fā)送的異常處理

在發(fā)送郵件時(shí),可能會(huì)出現(xiàn)各種異常,例如連接超時(shí)、認(rèn)證失敗等。你需要對(duì)這些異常進(jìn)行處理,以便及時(shí)發(fā)現(xiàn)和解決問(wèn)題。

郵件發(fā)送的性能問(wèn)題

在發(fā)送大量郵件時(shí),可能會(huì)出現(xiàn)性能問(wèn)題。你需要注意郵件發(fā)送的頻率和數(shù)量,以避免對(duì)郵件服務(wù)器造成過(guò)大的負(fù)載。

郵件發(fā)送的安全問(wèn)題

在發(fā)送郵件時(shí),需要注意郵件的安全性。你需要確保郵件內(nèi)容不包含敏感信息,并且郵件服務(wù)器的認(rèn)證和加密設(shè)置是正確的。

總之,在使用JavaMailSender發(fā)送郵件時(shí),你需要注意郵件服務(wù)器的配置、郵件內(nèi)容的設(shè)置、異常處理、性能問(wèn)題和安全問(wèn)題等方面,以確保郵件發(fā)送的順利和安全。

以上就是SpringBoot使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot JavaMailSender發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一個(gè)簡(jiǎn)單JDK版動(dòng)態(tài)代理

    一個(gè)簡(jiǎn)單JDK版動(dòng)態(tài)代理

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單JDK版動(dòng)態(tài)代理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Java%(取模運(yùn)算)全面講解

    Java%(取模運(yùn)算)全面講解

    這篇文章主要介紹了Java%(取模運(yùn)算)全面講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java教程各種接口的介紹

    Java教程各種接口的介紹

    Java教程各種接口的介紹,需要的朋友可以參考一下
    2013-02-02
  • MyBatis自定義SQL攔截器示例詳解

    MyBatis自定義SQL攔截器示例詳解

    Mybatis支持對(duì)Executor、StatementHandler、PameterHandler和ResultSetHandler 接口進(jìn)行攔截,也就是說(shuō)會(huì)對(duì)這4種對(duì)象進(jìn)行代理,下面這篇文章主要給大家介紹了關(guān)于MyBatis自定義SQL攔截器的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Spring Boot兩種配置文件properties和yml區(qū)別

    Spring Boot兩種配置文件properties和yml區(qū)別

    這篇文章主要為大家介紹了java面試中常見(jiàn)問(wèn)到的Spring Boot兩種配置文件properties和yml區(qū)別解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java通過(guò)反射查看類(lèi)的信息示例

    Java通過(guò)反射查看類(lèi)的信息示例

    這篇文章主要介紹了Java通過(guò)反射查看類(lèi)的信息,結(jié)合實(shí)例形式詳細(xì)分析了java基于反射獲取類(lèi)信息的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • 多線程如何解決for循環(huán)效率的問(wèn)題

    多線程如何解決for循環(huán)效率的問(wèn)題

    這篇文章主要介紹了多線程如何解決for循環(huán)效率的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 高斯混合模型與EM算法圖文詳解

    高斯混合模型與EM算法圖文詳解

    高斯模型就是用高斯概率密度函數(shù)(正態(tài)分布曲線)精確地量化事物,將一個(gè)事物分解為若干的基于高斯概率密度函數(shù)(正態(tài)分布曲線)形成的模型
    2021-08-08
  • SpringBoot配置文件方式,在線yml文件轉(zhuǎn)properties

    SpringBoot配置文件方式,在線yml文件轉(zhuǎn)properties

    這篇文章主要介紹了SpringBoot配置文件方式,在線yml文件轉(zhuǎn)properties,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Struts2 Result 返回JSON對(duì)象詳解

    Struts2 Result 返回JSON對(duì)象詳解

    這篇文章主要講解Struts2返回JSON對(duì)象的兩種方式,講的比較詳細(xì),希望能給大家做一個(gè)參考。
    2016-06-06

最新評(píng)論