Spring Boot利用Java Mail實(shí)現(xiàn)郵件發(fā)送
本文實(shí)例為大家分享了Spring Boot利用Java Mail實(shí)現(xiàn)郵件發(fā)送的具體代碼,供大家參考,具體內(nèi)容如下
實(shí)現(xiàn)郵件發(fā)送的方法有很多,這里只是簡(jiǎn)單記錄一個(gè)demo實(shí)現(xiàn)
1. 引入maven依賴(lài)
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.0.RELEASE</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </dependency>
2. 配置郵箱bean信息
我的配置文件名稱(chēng)是application-bean.xml
我是用qq郵箱做的測(cè)試,這里需要注意的是password要配置成郵箱授權(quán)碼,不是郵箱密碼
簡(jiǎn)單說(shuō)下郵箱授權(quán)碼的獲取方式:
登錄網(wǎng)頁(yè)版QQ郵箱 > 設(shè)置 > 賬戶(hù),需要保證 SMTP 服務(wù)開(kāi)啟

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.qq.com"/> <property name="port" value="465"/> <property name="defaultEncoding" value="utf-8"/> <property name="username" value="你的郵箱地址"/> <property name="password" value="你的郵箱授權(quán)碼(不是郵箱密碼)"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.sendpartial">true</prop> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.socketFactory.port">465</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> </props> </property> </bean> <bean class="com.amwalle.walle.util.Mail"> <property name="mailSender" ref="mailSender"/> </bean> </beans>
3. 加載bean配置信息
實(shí)現(xiàn)了一個(gè)BeanConfig類(lèi):
package com.amwalle.walle.bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource(locations={"classpath:/application-bean.xml"})
public class BeanConfig {
}
4. 郵件發(fā)送類(lèi)
簡(jiǎn)單實(shí)現(xiàn)了一個(gè)郵件發(fā)送的類(lèi),其中包含發(fā)送郵件方法 sendMail:
package com.amwalle.walle.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.MimeMessage;
public class Mail {
private static final Logger logger = LoggerFactory.getLogger(Mail.class);
private static JavaMailSenderImpl mailSender;
public static void sendMail(String title, String html, String to) {
try {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(mailSender.getUsername());
helper.setTo(to);
helper.setSubject(title);
helper.setText(html, true);
mailSender.send(msg);
} catch (Exception e) {
logger.error("sendMail error", e);
}
}
public void setMailSender(JavaMailSenderImpl mailSender) {
Mail.mailSender = mailSender;
}
public JavaMailSenderImpl getMailSender() {
return mailSender;
}
}
5. 測(cè)試郵件發(fā)送
調(diào)用郵件發(fā)送,檢查是否發(fā)送成功:
package com.amwalle.walle.controller;
import com.amwalle.walle.util.Mail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
public class HelloWorldController {
private static final Logger logger = LoggerFactory.getLogger(HelloWorldController.class);
@RequestMapping(value = "/walle", method = RequestMethod.GET)
public String helloWorld() {
logger.info("--------test-------");
Mail.sendMail("test","test", "接收郵箱地址");
return "hello world";
}
}
附我的工程目錄,需要修改的就是圈出來(lái)的這幾個(gè):

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于JavaMail實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送
- Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過(guò)程解析
- JavaMail郵件發(fā)送機(jī)制詳解
- 使用Spring的JAVA Mail支持簡(jiǎn)化郵件發(fā)送功能
- 基于JavaMail實(shí)現(xiàn)郵件發(fā)送
- 基于JavaMail的Java實(shí)現(xiàn)復(fù)雜郵件發(fā)送功能
- 基于JavaMail的Java實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送功能
- Java HtmlEmail 郵件發(fā)送的簡(jiǎn)單實(shí)現(xiàn)代碼
- JavaMail實(shí)現(xiàn)郵件發(fā)送的方法
- JavaMail實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送
相關(guān)文章
Java線程基本使用之如何實(shí)現(xiàn)Runnable接口
這篇文章主要介紹了Java線程基本使用之如何實(shí)現(xiàn)Runnable接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
java.lang.NoClassDefFoundError錯(cuò)誤的原因及解決方法
這篇文章主要給大家介紹了關(guān)于java.lang.NoClassDefFoundError錯(cuò)誤的原因及解決的相關(guān)資料,java.lang.NoClassDefFoundError是Java虛擬機(jī)在運(yùn)行時(shí)無(wú)法找到特定類(lèi)的錯(cuò)誤,需要的朋友可以參考下2023-10-10
前端如何調(diào)用后端接口進(jìn)行數(shù)據(jù)交互詳解(axios和SpringBoot)
一般來(lái)講前端不會(huì)給后端接口,而是后端給前端接口的情況比較普遍,下面這篇文章主要給大家介紹了關(guān)于前端如何調(diào)用后端接口進(jìn)行數(shù)據(jù)交互的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
Spring?Boot?+?Mybatis?Plus實(shí)現(xiàn)樹(shù)狀菜單的方法
這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實(shí)現(xiàn)樹(shù)狀菜單,包括實(shí)體類(lèi)中添加子菜單列表和集合及構(gòu)建菜單樹(shù)的詳細(xì)代碼,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2021-12-12
SpringBoot返回多種格式的數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot返回多種格式的數(shù)據(jù)的實(shí)現(xiàn)示例,主要包括了FastJson,xml,pdf,excel,資源流,具有一定的參考價(jià)值,感興趣的可以了解一下2021-10-10
Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份
隨著我們的長(zhǎng)期使用,Jenkins系統(tǒng)中的內(nèi)容會(huì)越來(lái)越多,特別是一些配置相關(guān)的東西,不能有任何丟失。這個(gè)時(shí)候我們就需要定期備份我們的Jenkins系統(tǒng),避免一些誤操作不小心刪除了某些重要文件,本文就將介紹下Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份2021-06-06
SpringBoot封裝響應(yīng)處理超詳細(xì)講解
這篇文章主要介紹了SpringBoot封裝響應(yīng)處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
springboot解決Class path contains multiple 
這篇文章主要介紹了springboot解決Class path contains multiple SLF4J bindings問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java線程編程中isAlive()和join()的使用詳解
這篇文章主要介紹了Java線程編程中isAlive()和join()的使用詳解,是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09

