使用Java代碼發(fā)送攜帶附件的郵件的示例詳解
說(shuō)明:本文介紹如何發(fā)使用代碼送攜帶附件的郵件。
代碼
發(fā)送代碼如下:
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.mail.MailAccount;
import java.io.File;
public class EmailSentTest {
public static void main(String[] args) {
// 郵件接收人,多個(gè)接收人使用逗號(hào)或者分號(hào)隔開(kāi)
String to = "接收人郵箱";
// 郵件主題
String subject = "測(cè)試郵件";
// 郵件內(nèi)容
String content = "這是一封測(cè)試郵件";
// 附件
File file = FileUtil.file("test.txt");
// 獲取郵箱客戶端
MailAccount account = EmailSendUtil.getMailClient("smtp.qq.com", 465,
"發(fā)件人郵箱", "QQ郵箱授權(quán)碼");
// 發(fā)送郵件
EmailSendUtil.sendEmail(account, to, subject, content, false, file);
}
}
test.txt 文件,在項(xiàng)目 resources 目錄里,內(nèi)容如下:

工具類如下:
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import java.io.File;
/**
* 郵件發(fā)送工具類
*/
public final class EmailSendUtil {
private EmailSendUtil() {
}
/**
* 獲取郵箱客戶端
*
* @param smtpHost smtp服務(wù)器地址
* @param smtpPort smtp服務(wù)器端口
* @param emailUsername 郵箱用戶名
* @param emailPassword 郵箱授權(quán)碼
* @return
*/
public static MailAccount getMailClient(String smtpHost, int smtpPort, String emailUsername, String emailPassword) {
MailAccount account = new MailAccount();
account.setHost(smtpHost);
account.setPort(smtpPort);
account.setAuth(true);
account.setFrom(emailUsername);
account.setUser(emailUsername);
account.setPass(emailPassword);
account.setSslEnable(true);
return account;
}
/**
* 發(fā)送郵件
*
* @param account 郵箱客戶端
* @param to 接收人郵箱地址
* @param subject 郵件主題
* @param content 郵件內(nèi)容
* @param isHtml 是否是html格式
* @param file 附件
*/
public static void sendEmail(MailAccount account, String to, String subject, String content, boolean isHtml, File file) {
if (StrUtil.isBlank(to)) {
throw new IllegalArgumentException("收件人郵箱地址不能為空");
}
if (StrUtil.isBlank(subject)) {
throw new IllegalArgumentException("郵件主題不能為空");
}
if (StrUtil.isBlank(content)) {
throw new IllegalArgumentException("郵件內(nèi)容不能為空");
}
try {
MailUtil.send(account, to, subject, content, isHtml, file);
System.out.println("郵件發(fā)送成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("郵件發(fā)送失敗");
}
}
}
發(fā)送成功

郵箱收到郵件

錯(cuò)誤
可能遇到下面這個(gè)錯(cuò)誤,提示需要使用 SSL 方式發(fā)送郵件

在創(chuàng)建郵件對(duì)象時(shí),需開(kāi)啟,如下:

到此這篇關(guān)于使用Java代碼發(fā)送攜帶附件的郵件的示例詳解的文章就介紹到這了,更多相關(guān)Java發(fā)送攜帶附件的郵件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
新版idea創(chuàng)建spring boot項(xiàng)目的詳細(xì)教程
這篇文章給大家介紹了新版idea創(chuàng)建spring boot項(xiàng)目的詳細(xì)教程,本教程對(duì)新手小白友好,若根據(jù)教程創(chuàng)建出現(xiàn)問(wèn)題導(dǎo)致失敗可下載我提供的源碼,在文章最后,本教程較新,文中通過(guò)圖文給大家介紹的非常詳細(xì),感興趣的朋友可以參考下2024-01-01
2020最新IDEA SpringBoot整合Dubbo的實(shí)現(xiàn)(zookeeper版)
這篇文章主要介紹了2020最新IDEA SpringBoot整合Dubbo(zookeeper版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Spring 實(shí)現(xiàn)excel及pdf導(dǎo)出表格示例
本篇文章主要介紹了Spring 實(shí)現(xiàn)excel及pdf導(dǎo)出表格示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Nacos配置內(nèi)容加密實(shí)現(xiàn)過(guò)程
文章介紹了在Nacos配置中實(shí)現(xiàn)加密的步驟,包括引入AES加密插件、重新編譯Nacos服務(wù)端、修改SpringBoot應(yīng)用配置前綴,并確保加密后內(nèi)容在數(shù)據(jù)庫(kù)存儲(chǔ)而應(yīng)用端能解密讀取2025-08-08
SpringBoot+Mybatis-Plus實(shí)現(xiàn)mysql讀寫分離方案的示例代碼
這篇文章主要介紹了SpringBoot+Mybatis-Plus實(shí)現(xiàn)mysql讀寫分離方案的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
spring的pointcut正則表達(dá)式的實(shí)現(xiàn)
本文主要介紹了spring的pointcut正則表達(dá)式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
基于spring boot排除掃描類的三種方式小結(jié)
這篇文章主要介紹了spring boot排除掃描類的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

