基于Java實(shí)現(xiàn)QQ郵箱發(fā)送工具類(lèi)
我們?cè)谌粘i_(kāi)發(fā)中,需要實(shí)現(xiàn)一個(gè)對(duì)郵箱的發(fā)送,今天就實(shí)現(xiàn)郵箱的發(fā)送工具類(lèi),只需要一些注冊(cè)郵箱之后的配置即可,我這邊使用的是qq郵箱
0.加上依賴(lài)
<!--郵箱-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
1.配置yml文件
需要到官網(wǎng)上去注冊(cè),鏈接地址:https://mail.qq.com/
spring: # Spring Boot應(yīng)用程序配置的根節(jié)點(diǎn)
mail: # 郵件相關(guān)配置
username: # 你自己的QQ郵箱的用戶名,需要填寫(xiě)你的QQ郵箱地址
password: # 你自己的QQ郵箱的密鑰/密碼,需要填寫(xiě)你的QQ郵箱登錄密碼
host: smtp.qq.com # SMTP服務(wù)器主機(jī)名,這里設(shè)置為QQ郵箱的SMTP服務(wù)器
port: 465 # SMTP服務(wù)器端口,通常情況下使用SSL的SMTP協(xié)議使用465端口
protocol: smtp # 使用SMTP協(xié)議發(fā)送郵件
properties: # 郵件相關(guān)的屬性配置
mail: # 郵件協(xié)議屬性配置
smtp: # SMTP協(xié)議屬性配置
ssl: # SSL/TLS屬性配置
enable: true # 啟用SSL,表示使用加密傳輸郵件
auth: true # 啟用SMTP身份驗(yàn)證,需要提供用戶名和密碼
starttls: # STARTTLS屬性配置,用于在未加密連接上啟用TLS
enable: true # 啟用STARTTLS
required: true # 要求必須使用STARTTLS
socketFactory: # Socket工廠屬性配置,用于SSL連接
port: 465 # SSL連接的端口,與SMTP服務(wù)器的端口一致
class: javax.net.ssl.SSLSocketFactory # 使用的Socket工廠類(lèi),通常用于SSL連接
# 請(qǐng)確保填寫(xiě)你自己的QQ郵箱地址和密碼,以及確保QQ郵箱允許使用SMTP服務(wù)來(lái)發(fā)送郵件2.寫(xiě)一個(gè)發(fā)送郵箱工具類(lèi)
@Component
public class MailUtil {
private static MailUtil INSTANCE = new MailUtil();
@Resource
JavaMailSender mailSender;
@Resource
JavaMailSender javaMailSender;
@PostConstruct
public void init(){
INSTANCE.mailSender = mailSender;
}
/**
* 發(fā)送簡(jiǎn)單郵件
*
* @param subject 主題
* @param content 內(nèi)容
* @param from 發(fā)件人
* @param to 收件人
*/
public void sendSimpleMail(String subject,String content,String from,String[] to){
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
// 主題
message.setSubject(subject);
// 郵件正文
message.setText(content);
message.setSentDate(new Date());
// 發(fā)送郵件
INSTANCE.mailSender.send(message);
}
public void sendMimeMail(String subject,String content,String from,String[] to) throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
// 構(gòu)建一個(gè)郵件對(duì)象
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
// 設(shè)置郵件主題
helper.setSubject(subject);
// 設(shè)置郵件發(fā)送者,這個(gè)跟application.yml中設(shè)置的要一致
helper.setFrom(from);
helper.setTo(to);
// 設(shè)置郵件發(fā)送日期
helper.setSentDate(new Date());
// 設(shè)置郵件的正文 true:是html文件
helper.setText(content,true);
// 發(fā)送郵件
javaMailSender.send(mimeMessage);
}
}3.編寫(xiě)controller控制器接口
@RestController
@Api(tags = "郵箱發(fā)送")
@RequestMapping("/mail")
public class MailServlet {
@Resource
private MailUtil mailUtil;
@PostMapping("/to")
@ApiOperation("發(fā)送郵件")
@ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容")
, @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開(kāi)")})
public R to(String subject, String content, String from, String to) {
String[] split = to.split(",");
try {
mailUtil.sendSimpleMail(subject, content, from, split);
return R.ok("發(fā)送成功");
} catch (Exception e) {
e.fillInStackTrace();
return R.fail("發(fā)送失敗");
}
}
@PostMapping("/tof")
@ApiOperation("發(fā)送富文本郵件")
@ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容<html>格式")
, @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開(kāi)")})
public R tof(String subject, String content, String from, String to) {
String[] split = to.split(",");
try {
mailUtil.sendMimeMail(subject, content, from, split);
return R.ok("發(fā)送成功");
} catch (Exception e) {
e.fillInStackTrace();
return R.fail("發(fā)送失敗");
}
}
}以上就是基于Java實(shí)現(xiàn)QQ郵箱發(fā)送工具類(lèi)的詳細(xì)內(nèi)容,更多關(guān)于Java郵箱發(fā)送的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java語(yǔ)言是一個(gè)面向?qū)ο蟮恼Z(yǔ)言,但是Java中的基本數(shù)據(jù)類(lèi)型卻是不面向?qū)ο蟮?,這在實(shí)際使用時(shí)存在很多的不便,所以在設(shè)計(jì)類(lèi)時(shí)為每個(gè)基本數(shù)據(jù)類(lèi)型設(shè)計(jì)了一個(gè)對(duì)應(yīng)的類(lèi)進(jìn)行代表,這樣八個(gè)和基本數(shù)據(jù)類(lèi)型對(duì)應(yīng)的類(lèi)統(tǒng)稱(chēng)為包裝類(lèi),有些地方也翻譯為外覆類(lèi)或數(shù)據(jù)類(lèi)型類(lèi)。2017-02-02
Eclipse創(chuàng)建JavaWeb工程的完整步驟記錄
很多新手不知道Eclipse怎么創(chuàng)建Java Web項(xiàng)目,一起來(lái)看看吧,這篇文章主要給大家介紹了關(guān)于Eclipse創(chuàng)建JavaWeb工程的完整步驟,需要的朋友可以參考下2023-10-10
Linux內(nèi)核定時(shí)器使用及說(shuō)明
文章詳細(xì)介紹了Linux內(nèi)核定時(shí)器的特性、核心數(shù)據(jù)結(jié)構(gòu)、時(shí)間相關(guān)轉(zhuǎn)換函數(shù)以及操作API,通過(guò)示例展示了如何編寫(xiě)和使用定時(shí)器,包括按鍵消抖的應(yīng)用2025-12-12
使用HandlerMethodArgumentResolver用于統(tǒng)一獲取當(dāng)前登錄用戶
這篇文章主要介紹了使用HandlerMethodArgumentResolver用于統(tǒng)一獲取當(dāng)前登錄用戶實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
SpringSecurity自定義登錄接口的實(shí)現(xiàn)
本文介紹了使用Spring Security實(shí)現(xiàn)自定義登錄接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
java實(shí)現(xiàn)計(jì)算地理坐標(biāo)之間的距離
java實(shí)現(xiàn)計(jì)算地理坐標(biāo)之間的距離,主要是通過(guò)計(jì)算兩經(jīng)緯度點(diǎn)之間的距離來(lái)實(shí)現(xiàn),有需要的小伙伴參考下吧2015-03-03
SpringBoot集成E-mail發(fā)送各種類(lèi)型郵件
這篇文章主要為大家詳細(xì)介紹了SpringBoot集成E-mail發(fā)送各種類(lèi)型郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04

