Java實現(xiàn)帶附件的郵件發(fā)送功能
本文實例為大家分享了Java實現(xiàn)郵件發(fā)送功能的具體代碼,供大家參考,具體內(nèi)容如下
1、需要導(dǎo)入mail.jar、activation.jar這兩個郵件發(fā)送的jar包,可在網(wǎng)上搜索并下載
2、需要設(shè)置相關(guān)郵箱服務(wù)器,我用的是QQ郵箱,操作如下所示:開啟相關(guān)服務(wù),并生產(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 郵件服務(wù)器 // 獲取系統(tǒng)屬性 Properties properties = System.getProperties(); // 設(shè)置郵件服務(wù)器 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郵箱服務(wù)器賬戶、第三方登錄授權(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(); // 設(shè)置文本消息部分 multipart.addBodyPart(messageBodyPart); // 附件部分 messageBodyPart = new MimeBodyPart(); //設(shè)置要發(fā)送附件的文件路徑 String filename = "C:/Users/下雨天-lalala/Desktop/家醫(yī)康心電圖/十二導(dǎo)聯(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)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Spring Security實現(xiàn)對密碼進行加密和校驗
我們在入門案例中,其實已經(jīng)是一個非常簡單的認證,但是用戶名是寫死的,密碼也需要從控制臺查看,很顯然實際中并不能這么做,下面的學(xué)習中,我們來實現(xiàn)基于內(nèi)存模型的認證以及用戶的自定義認證,密碼加密等內(nèi)容,需要的朋友可以參考下2024-07-07Java 數(shù)組元素倒序的三種方式(小結(jié))
這篇文章主要介紹了Java 數(shù)組元素倒序的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2019-09-09Java 基礎(chǔ):string中的compareTo方法
這篇文章主要介紹了Java 基礎(chǔ):string中的compareTo方法,文章圍繞string中的compareTo方法的相關(guān)資料展開文章詳細內(nèi)容,希望對待大家有所幫助2021-12-12Java基礎(chǔ)教程之基本類型數(shù)據(jù)類型、包裝類及自動拆裝箱
這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之基本類型數(shù)據(jù)類型、包裝類及自動拆裝箱的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧2019-06-06Java service層獲取HttpServletRequest工具類的方法
今天小編就為大家分享一篇關(guān)于Java service層獲取HttpServletRequest工具類的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Springboot+ElementUi實現(xiàn)評論、回復(fù)、點贊功能
這篇文章主要介紹了通過Springboot ElementUi實現(xiàn)評論、回復(fù)、點贊功能。如果是自己評論的還可以刪除,刪除的規(guī)則是如果該評論下還有回復(fù),也一并刪除。需要的可以參考一下2022-01-01java實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法
下面小編就為大家?guī)硪黄猨ava實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09