日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 发送邮件添加附件_java邮件自动发送时添加网络附件

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 发送邮件添加附件_java邮件自动发送时添加网络附件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查了很多資料都是使用本地資源作為附件發送。但是數據和程序分開時,還需要先下載數據,保存到本地再發送郵件。查了很多資料后,發現apach提供了很好的一個commons-mail.jar包,做了很好的封裝,簡單易用。下載地址是http://commons.apache.org/proper/commons-email/download_email.cgi

public void sendHtmlEmailWithImg() throws Exception {

String htmlEmailContent = "這是一張用于測試的圖片,請查收。

"

+ "

";

ImageHtmlEmail email = new ImageHtmlEmail();//用ImageHtmlEmail來發送

email.setDebug(true);//可以看到執行過程的debug信息

email.setCharset("UTF-8");//防止亂碼

email.setSSLCheckServerIdentity(true);

email.setSslSmtpPort("465"); // 設定SSL端口

//解析本地圖片和網絡圖片都有的html文件重點就是下面這兩行;

//ImageHtmlEmail通過setDataSourceResolver來識別并嵌入圖片

//查看DataSourceResolver的繼承結構發現有幾個好用的子類

DataSourceResolver[] dataSourceResolvers =

new DataSourceResolver[]{new DataSourceFileResolver(),//添加DataSourceFileResolver用于解析本地圖片

new DataSourceUrlResolver(new URL("http://"))};//添加DataSourceUrlResolver用于解析網絡圖片,注意:new URL("http://")

//DataSourceCompositeResolver類可以加入多個DataSourceResolver,

//把需要的DataSourceResolver放到一個數組里傳進去就可以了;

email.setDataSourceResolver(new DataSourceCompositeResolver(dataSourceResolvers));

// 郵箱登陸信息

email.setHostName("smtp.qq.com");

email.addTo("*@qq.com", "Jo");

email.setFrom("*@qq.com", "Me"); // 必須和登陸郵箱名一致,否則會報錯

email.setAuthenticator(new DefaultAuthenticator("*@qq.com", "********")); // 郵箱名和登陸密碼

email.setSubject("發送一張圖片,看看是否可以收到。");

email.setHtmlMsg(htmlEmailContent);

//如果客戶端不去持HTML格式會顯示這句話,不過應該很少有不支持HTML格式的客戶端了吧

email.setTextMsg("你的郵箱客戶端不支持HTML格式郵件");

email.send();

}

如果使用QQ郵箱做測試需要注意,QQ郵箱對圖片顯示不太友好,需要點擊顯示圖片才能顯示。

ImageHtmlEmail也可以直接添加網絡資源作為附件

/**

* 為郵件添加附件

* @param email 郵件

* @param urls 附件鏈接

* @param names 附件名稱,最好有后綴名才能預覽文件

*/

public void addAttachment(ImageHtmlEmailemail, Listurls, Listnames) {

// 保證附件名的長度和鏈接一一對應

while(urls.size() > names.size()) {

names.add("");

}

for(int i = 0; i < urls.size(); i++) {

EmailAttachment attachment = new EmailAttachment();

try {

attachment.setURL(new URL(urls.get(i)));

attachment.setDisposition(EmailAttachment.ATTACHMENT);

//attachment.setDescription("Apache logo");

attachment.setName(names.get(i));

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

email.attach(attachment); // 將附件添加到郵件中

} catch (EmailException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

總結

以上是生活随笔為你收集整理的java 发送邮件添加附件_java邮件自动发送时添加网络附件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。