使用Java代碼發(fā)送攜帶附件的郵件的示例詳解
說明:本文介紹如何發(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è)接收人使用逗號或者分號隔開
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 文件,在項(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)建郵件對象時(shí),需開啟,如下:

到此這篇關(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
工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-08-08
?Java數(shù)據(jù)結(jié)構(gòu)的十大排序
這篇文章主要介紹了?Java數(shù)據(jù)結(jié)構(gòu)的十大排序,排序算法分為比較類排序和非比較類排序,具體的內(nèi)容,需要的朋友參考下面思維導(dǎo)圖及文章介紹,希望對你有所幫助2022-01-01
Java實(shí)現(xiàn)Shazam聲音識(shí)別算法的實(shí)例代碼
Shazam算法采用傅里葉變換將時(shí)域信號轉(zhuǎn)換為頻域信號,并獲得音頻指紋,最后匹配指紋契合度來識(shí)別音頻。這篇文章給大家介紹Java實(shí)現(xiàn)Shazam聲音識(shí)別算法的實(shí)例代碼,需要的朋友參考下吧2018-09-09
springboot 通過代碼自動(dòng)生成pid的方法
這篇文章主要介紹了springboot 通過代碼自動(dòng)生成pid的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07

