Java實現(xiàn)帶附件的郵件發(fā)送功能
本文實例為大家分享了Java實現(xiàn)郵件發(fā)送功能的具體代碼,供大家參考,具體內(nèi)容如下
1、需要導入mail.jar、activation.jar這兩個郵件發(fā)送的jar包,可在網(wǎng)上搜索并下載
2、需要設置相關郵箱服務器,我用的是QQ郵箱,操作如下所示:開啟相關服務,并生產(chǎn)授權(quán)碼(這個代碼中會用到)。

代碼如下所示:
package com.ecg.controller;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import com.sun.mail.util.MailSSLSocketFactory;
/**
* 郵件發(fā)送
*
* @author wanglongfei
* E-mail: islongfei@gmail.com
* @version 2017年8月27日
*
*/
public class mailtest {
public static void main(String [] args) throws GeneralSecurityException, UnsupportedEncodingException
{
// 收件人電子郵箱
String to = "2528621082@qq.com";
// 發(fā)件人電子郵箱
String from = "1135237317@qq.com";
// 指定發(fā)送郵件的主機為 smtp.qq.com
String host = "smtp.qq.com"; //QQ 郵件服務器
// 獲取系統(tǒng)屬性
Properties properties = System.getProperties();
// 設置郵件服務器
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
// 獲取默認session對象
Session session = Session.getDefaultInstance(properties,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication()
{ //qq郵箱服務器賬戶、第三方登錄授權(quán)碼
return new PasswordAuthentication("1135237317@qq.com", "dgahhkkjrtgafejj"); //發(fā)件人郵件用戶名、密碼
}
});
try{
// 創(chuàng)建默認的 MimeMessage 對象
MimeMessage message = new MimeMessage(session);
// Set From: 頭部頭字段
message.setFrom(new InternetAddress(from));
// Set To: 頭部頭字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// Set Subject: 主題文字
message.setSubject("家醫(yī)康心電診斷結(jié)果");
// 創(chuàng)建消息部分
BodyPart messageBodyPart = new MimeBodyPart();
// 消息
messageBodyPart.setText("233333333333333");
// 創(chuàng)建多重消息
Multipart multipart = new MimeMultipart();
// 設置文本消息部分
multipart.addBodyPart(messageBodyPart);
// 附件部分
messageBodyPart = new MimeBodyPart();
//設置要發(fā)送附件的文件路徑
String filename = "C:/Users/下雨天-lalala/Desktop/家醫(yī)康心電圖/十二導聯(lián)同步心電圖-.png";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
//messageBodyPart.setFileName(filename);
//處理附件名稱中文(附帶文件路徑)亂碼問題
messageBodyPart.setFileName(MimeUtility.encodeText(filename));
multipart.addBodyPart(messageBodyPart);
// 發(fā)送完整消息
message.setContent(multipart );
// 發(fā)送消息
Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Mybatis入門指南之實現(xiàn)對數(shù)據(jù)庫增刪改查
數(shù)據(jù)持久層主要負責數(shù)據(jù)的增、刪、改、查等功能,MyBatis 則是一款優(yōu)秀的持久層框架,下面這篇文章主要給大家介紹了關于Mybatis入門指南之實現(xiàn)對數(shù)據(jù)庫增刪改查的相關資料,需要的朋友可以參考下2022-10-10
Spring Cloud Alibaba配置多環(huán)境管理詳解與實戰(zhàn)代碼
本文通過實際案例詳細介紹了springboot配置多環(huán)境管理的使用,以及基于nacos的配置多環(huán)境管理的實踐,在實際開發(fā)中,配置多環(huán)境管理是一個很難避開的問題,同時也是微服務治理中一個很重要的內(nèi)容,感興趣的朋友跟隨小編一起看看吧2024-06-06
Java 中String StringBuilder 與 StringBuffer詳解及用法實例
這篇文章主要介紹了Java 中String StringBuilder 與 StringBuffer詳解及用法實例的相關資料,需要的朋友可以參考下2017-02-02
Springboot發(fā)送郵件功能的實現(xiàn)詳解
電子郵件是—種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應用最廣的服務。本文詳細為大家介紹了SpringBoot實現(xiàn)發(fā)送電子郵件功能的示例代碼,需要的可以參考一下2022-09-09
解決maven?maven.compiler.source和maven.compiler.target的坑
這篇文章主要介紹了解決maven?maven.compiler.source和maven.compiler.target的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12

