使用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) {
// 郵件接收人,多個接收人使用逗號或者分號隔開
String to = "接收人郵箱";
// 郵件主題
String subject = "測試郵件";
// 郵件內(nèi)容
String content = "這是一封測試郵件";
// 附件
File file = FileUtil.file("test.txt");
// 獲取郵箱客戶端
MailAccount account = EmailSendUtil.getMailClient("smtp.qq.com", 465,
"發(fā)件人郵箱", "QQ郵箱授權碼");
// 發(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服務器地址
* @param smtpPort smtp服務器端口
* @param emailUsername 郵箱用戶名
* @param emailPassword 郵箱授權碼
* @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)建郵件對象時,需開啟,如下:

到此這篇關于使用Java代碼發(fā)送攜帶附件的郵件的示例詳解的文章就介紹到這了,更多相關Java發(fā)送攜帶附件的郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
新版idea創(chuàng)建spring boot項目的詳細教程
這篇文章給大家介紹了新版idea創(chuàng)建spring boot項目的詳細教程,本教程對新手小白友好,若根據(jù)教程創(chuàng)建出現(xiàn)問題導致失敗可下載我提供的源碼,在文章最后,本教程較新,文中通過圖文給大家介紹的非常詳細,感興趣的朋友可以參考下2024-01-01
2020最新IDEA SpringBoot整合Dubbo的實現(xiàn)(zookeeper版)
這篇文章主要介紹了2020最新IDEA SpringBoot整合Dubbo(zookeeper版),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
Spring 實現(xiàn)excel及pdf導出表格示例
本篇文章主要介紹了Spring 實現(xiàn)excel及pdf導出表格示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼
這篇文章主要介紹了SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03

