使用Java代碼發(fā)送攜帶附件的郵件的示例詳解
更新時間:2025年08月31日 15:23:32 作者:何中應(yīng)
本文介紹如何使用Hutool庫的MailUtil組件實現(xiàn)郵件發(fā)送功能,包括設(shè)置郵件服務(wù)器、賬號認(rèn)證、郵件內(nèi)容及附件等步驟,需要的朋友可以參考下
說明:本文介紹如何發(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) {
// 郵件接收人,多個接收人使用逗號或者分號隔開
String to = "接收人郵箱";
// 郵件主題
String subject = "測試郵件";
// 郵件內(nèi)容
String content = "這是一封測試郵件";
// 附件
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 文件,在項目 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ā)送成功

郵箱收到郵件

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

在創(chuàng)建郵件對象時,需開啟,如下:

到此這篇關(guān)于使用Java代碼發(fā)送攜帶附件的郵件的示例詳解的文章就介紹到這了,更多相關(guān)Java發(fā)送攜帶附件的郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之排序算法
排序算法是《數(shù)據(jù)結(jié)構(gòu)與算法》中最基本的算法之一。排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存2022-02-02
?Java數(shù)據(jù)結(jié)構(gòu)的十大排序
這篇文章主要介紹了?Java數(shù)據(jù)結(jié)構(gòu)的十大排序,排序算法分為比較類排序和非比較類排序,具體的內(nèi)容,需要的朋友參考下面思維導(dǎo)圖及文章介紹,希望對你有所幫助2022-01-01

