最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring框架JavaMailSender發(fā)送郵件工具類詳解

 更新時間:2020年04月22日 16:32:33   作者:Tlimited  
這篇文章主要為大家詳細介紹了Spring框架JavaMailSender發(fā)送郵件工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Spring框架JavaMailSender發(fā)送郵件工具類,供大家參考,具體內(nèi)容如下

需要用到的jar包:

下面是發(fā)送工具類代碼:

package com.test.email;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

/**
 * @author tlimited
 * @create 2017-08-17 11:38
 **/
public class SendMailUtils {

 // Spring的郵件工具類,實現(xiàn)了MailSender和JavaMailSender接口
 private JavaMailSenderImpl mailSender;

 /**
 * 初始化郵件發(fā)送數(shù)據(jù)
 * @param host 服務器
 * @param username 發(fā)送人
 * @param passwd 發(fā)送人密碼
 */
 public void setInitData(String host,String username,String passwd){
  //創(chuàng)建郵件發(fā)送服務器
 mailSender = new JavaMailSenderImpl();
 mailSender.setHost(host);
 // mailSender.setPort(465);
 mailSender.setUsername(username);
 mailSender.setPassword(passwd);
 //加認證機制
 Properties javaMailProperties = new Properties();
 javaMailProperties.put("mail.smtp.auth", true);
 javaMailProperties.put("mail.smtp.starttls.enable", true);
 javaMailProperties.put("mail.smtp.timeout", 5000);
 mailSender.setJavaMailProperties(javaMailProperties);
 System.out.println("初始化郵件發(fā)送信息完成");
 }
 /**
 * 發(fā)送普通文本
 * @param email 對方郵箱地址
 * @param subject 主題
 * @param text 郵件內(nèi)容
 */
 public void simpleMailSend(String email,String subject,String text) {
 //創(chuàng)建郵件內(nèi)容
 SimpleMailMessage message=new SimpleMailMessage();
 message.setFrom(mailSender.getUsername());
 message.setTo(email);
 message.setSubject(subject);
 message.setText(text);
 //發(fā)送郵件
 mailSender.send(message);
 System.out.println("發(fā)送成功");
 }

 /**
 * 發(fā)送附件,支持多附件
 * //使用JavaMail的MimeMessage,支付更加復雜的郵件格式和內(nèi)容
 //MimeMessages為復雜郵件模板,支持文本、附件、html、圖片等。
 * @param email 對方郵箱
 * @param subject 主題
 * @param text 內(nèi)容
 * @param paths 附件路徑,和文件名
 * @throws MessagingException
 */
 public void attachedSend(String email,String subject,String text,Map<String,String> paths) throws MessagingException {

 MimeMessage message = mailSender.createMimeMessage();
 //創(chuàng)建MimeMessageHelper對象,處理MimeMessage的輔助類
 MimeMessageHelper helper = new MimeMessageHelper(message, true);
 //使用輔助類MimeMessage設(shè)定參數(shù)
 helper.setFrom(mailSender.getUsername());
 helper.setTo(email);
 helper.setSubject(subject);
 helper.setText(text);

 if (paths!=null){
  paths.forEach((k,v)->{
   //加載文件資源,作為附件
   FileSystemResource file = new FileSystemResource(v);
   try {
   //添加附件
   helper.addAttachment(k, file);
  } catch (Exception e) {
   e.printStackTrace();
  }
  });
 }
 //發(fā)送郵件
 mailSender.send(message);
 System.out.println("發(fā)送成功");
 }

 /**
 * 發(fā)送html文件,支持多圖片
 * @param email 對方郵箱
 * @param subject 主題
 * @param text 內(nèi)容
 * @param paths 富文本中添加用到的路徑,一般是圖片,或者css,js文件
 * @throws MessagingException
 */
 public void richContentSend(String email,String subject,String text,Map<String,String> paths) throws MessagingException {

 MimeMessage message = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(message, true);

 helper.setFrom(mailSender.getUsername());
 helper.setTo(email);
 helper.setSubject(subject);
 //第二個參數(shù)true,表示text的內(nèi)容為html,然后注意<img/>標簽,src='cid:file','cid'是contentId的縮寫,'file'是一個標記,
 //需要在后面的代碼中調(diào)用MimeMessageHelper的addInline方法替代成文件
 helper.setText(text,true);
 //文件地址相對應src目錄
 // ClassPathResource file = new ClassPathResource("logo.png");

 if (paths!=null){
  paths.forEach((k,v)->{
   //文件地址對應系統(tǒng)目錄
   FileSystemResource file = new FileSystemResource(v);
   try {
   helper.addInline(k, file);
  } catch (Exception e) {
   e.printStackTrace();
  }
  });
 }
 mailSender.send(message);
 System.out.println("發(fā)送成功");
 }

 /**
 * 群發(fā)多人,且多附件
 * @param mailto 多人郵件地址
 * @param subject 主題
 * @param text 內(nèi)容
 * @param filePath 文件路徑
 * @throws Exception
 */
 public void sendBatchMailWithFile(String[] emails, String subject, String text, String[] filePath) throws Exception { 

 MimeMessage mimeMessage = mailSender.createMimeMessage(); 
 MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); 
 messageHelper.setFrom(new InternetAddress(MimeUtility.encodeText(mailSender.getUsername()))); 
 messageHelper.setSubject(subject); 
 if (filePath != null) { 
  BodyPart mdp = new MimeBodyPart();// 新建一個存放信件內(nèi)容的BodyPart對象 
  mdp.setContent(text, "text/html;charset=UTF-8");// 給BodyPart對象設(shè)置內(nèi)容和格式/編碼方式 
  Multipart mm = new MimeMultipart();// 新建一個MimeMultipart對象用來存放BodyPart對象 
  mm.addBodyPart(mdp);// 將BodyPart加入到MimeMultipart對象中(可以加入多個BodyPart) 
  // 把mm作為消息對象的內(nèi)容 
  MimeBodyPart filePart; 
  FileDataSource filedatasource; 
  // 逐個加入附件 
  for (int j = 0; j < filePath.length; j++) { 
  filePart = new MimeBodyPart(); 
  filedatasource = new FileDataSource(filePath[j]); 
  filePart.setDataHandler(new DataHandler(filedatasource)); 
  try { 
   filePart.setFileName(MimeUtility.encodeText(filedatasource.getName())); 
  } catch (Exception e) { 
   e.printStackTrace(); 
  } 
  mm.addBodyPart(filePart); 
  } 
  mimeMessage.setContent(mm); 
 } else { 
  messageHelper.setText(text, true); 
 } 

 List<InternetAddress> list = new ArrayList<InternetAddress>();// 不能使用string類型的類型,這樣只能發(fā)送一個收件人 
 for (int i = 0; i < emails.length; i++) { 
  list.add(new InternetAddress(emails[i])); 
 } 
 InternetAddress[] address = list.toArray(new InternetAddress[list.size()]); 

 mimeMessage.setRecipients(Message.RecipientType.TO, address); 
 mimeMessage = messageHelper.getMimeMessage(); 

 mailSender.send(mimeMessage); 
 System.out.println("發(fā)送成功");
 } 


 public static void main(String[] args) throws Exception
 {
 SendMailUtils test = new SendMailUtils();
 //測試發(fā)送普通文本
 // test.setInitData("smtp.qq.com","706548532@qq.com","123456");
 test.setInitData("smtp.163.com","1234@163.com","1234");
 test.simpleMailSend("1326624701@qq.com","測試","測試能不能發(fā)郵件?。?!");

 //測試發(fā)送附件
 /* test.setInitData("smtp.163.com","1234@163.com","1234");
 Map<String,String> map = new HashMap<String, String>();
 map.put("test12.xls", "D:\\tomcat8\\apache-tomcat-8.0.29\\test12.xls");
 map.put("wsdl.rar", "D:\\wsdl.rar");
 test.attachedSend("706548532@qq.com","Hello Attachment","This is a mail with attachment",map);
 */

 //測試發(fā)送富文本(html文件)
 /* test.setInitData("smtp.163.com","1234@163.com","1234");
 String text = "<body><p style='color:red;'>Hello Html Email</p><img src='cid:file'/></body>";
 Map<String,String> map = new HashMap<String, String>();
 map.put("file", "E:\\1f7827.jpg");
 test.richContentSend("706548532@qq.com","郵件標題",text,map);*/

 //測試群發(fā)多人多附件
 test.setInitData("smtp.163.com","1234@163.com","1234");
 String [] address = {"706548532@qq.com","1326624701@qq.com"};
 String [] filePath = {"D:\\tomcat8\\apache-tomcat-8.0.29\\test12.xls", "D:\\wsdl.rar"};
 test.sendBatchMailWithFile(address, "群發(fā)多文件", "實時", filePath);
 }

}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Collections.sort()排序代碼案例

    Java Collections.sort()排序代碼案例

    這篇文章主要介紹了Java Collections.sort()排序代碼案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 解決idea啟動報錯javax.imageio.IIOException的問題

    解決idea啟動報錯javax.imageio.IIOException的問題

    這篇文章主要介紹了idea啟動報錯javax.imageio.IIOException,解決打不開idea問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • IDEA 中創(chuàng)建SpringBoot 父子模塊的實現(xiàn)

    IDEA 中創(chuàng)建SpringBoot 父子模塊的實現(xiàn)

    這篇文章主要介紹了IDEA 中創(chuàng)建SpringBoot 父子模塊的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • jdk15的安裝與配置全過程記錄

    jdk15的安裝與配置全過程記錄

    這篇文章主要給大家介紹了關(guān)于jdk15的安裝與配置,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    這篇文章主要介紹了Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Springboot集成Mybatis-plus、ClickHouse實現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能

    Springboot集成Mybatis-plus、ClickHouse實現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能

    本文給大家講解Springboot + mybatis-plus 集成ClickHouse,實現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • SpringMVC中@ModelAttribute注解的使用教程

    SpringMVC中@ModelAttribute注解的使用教程

    在SpringMVC中,我們可以通過使用@ModelAttribute注解標記方法,實現(xiàn)類似于Struts2中Preparable攔截器的效果,這篇文章主要給大家介紹了關(guān)于SpringMVC中@ModelAttribute注解使用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Spring遠程加載配置的實現(xiàn)方法詳解

    Spring遠程加載配置的實現(xiàn)方法詳解

    這篇文章主要介紹了Spring遠程加載配置的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • Java/Android 獲取網(wǎng)絡重定向文件的真實URL的示例代碼

    Java/Android 獲取網(wǎng)絡重定向文件的真實URL的示例代碼

    本篇文章主要介紹了Java/Android 獲取網(wǎng)絡重定向文件的真實URL的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java 中 Map 集合的三種遍歷方式小結(jié)

    Java 中 Map 集合的三種遍歷方式小結(jié)

    這篇文章主要介紹了Java 中 Map 集合的三種遍歷方式,每種遍歷方式結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

普兰店市| 张家界市| 金乡县| 信丰县| 义乌市| 芦山县| 米脂县| 衡山县| 太仓市| 静乐县| 长顺县| 正蓝旗| 肥东县| 曲松县| 句容市| 攀枝花市| 岳池县| 西丰县| 马尔康县| 麻栗坡县| 肇东市| 高阳县| 宁波市| 湖州市| 龙泉市| 龙井市| 右玉县| 玉环县| 长白| 独山县| 鹤壁市| 广州市| 巴青县| 即墨市| 古田县| 板桥市| 黔东| 吉木萨尔县| 海原县| 偃师市| 砀山县|