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

Java Web stmp發(fā)送帶附件郵件(附SSL版)

 更新時(shí)間:2018年05月23日 08:37:29   作者:luck-cheng  
這篇文章主要為大家詳細(xì)介紹了Java Web stmp發(fā)送帶附件郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java Web stmp發(fā)送帶附件郵件的具體代碼,供大家參考,具體內(nèi)容如下

public class MailFileSendUtils {

 private Properties props; //系統(tǒng)屬性
 private Session session; //郵件會(huì)話對(duì)象
 private MimeMessage mimeMsg; //MIME郵件對(duì)象
 private Multipart mp; //Multipart對(duì)象,郵件內(nèi)容,標(biāo)題,附件等內(nèi)容均添加到其中后再生成MimeMessage對(duì)象

 /**
  * Constructor
  * @param
  */
 public MailFileSendUtils(){
  props = System.getProperties();
  props.put("mail.smtp.auth","false");
  session = Session.getDefaultInstance(props, null);
  session.setDebug(true);
  mimeMsg = new MimeMessage(session);
  mp = new MimeMultipart();
 }

 /**
  * Constructor
  * @param smtp 郵件發(fā)送服務(wù)器
  */
 public MailFileSendUtils(String smtp, String username, String password){
  props = System.getProperties();
  props.put("mail.smtp.auth","true");
  props.put("mail.smtp.host", smtp);
  props.put("username", username);
  props.put("password", password);
  session = Session.getDefaultInstance(props, null);
  session.setDebug(true);
  mimeMsg = new MimeMessage(session);
  mp = new MimeMultipart();
 }

 /**
  * 發(fā)送郵件
  */
 public boolean sendMail(String from, String[] to, String subject, String content, String filename) {
  try {
   //設(shè)置發(fā)信人
   mimeMsg.setFrom(new InternetAddress(from));
   //設(shè)置接收人
   for (int i = 0; i < to.length; i++) {
    mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i]));
   }
   //設(shè)置抄送人
//   for (int i = 0; i < copyto.length; i++) {
//    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i]));
//   }
   //設(shè)置主題
   mimeMsg.setSubject(subject);
   //設(shè)置正文
   BodyPart bp = new MimeBodyPart();
   bp.setContent(content, "text/html;charset=utf-8");
   mp.addBodyPart(bp);
   //設(shè)置附件
   bp = new MimeBodyPart();
   FileDataSource fileds = new FileDataSource(filename);
   bp.setDataHandler(new DataHandler(fileds));
   bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
   mp.addBodyPart(bp);
   mimeMsg.setContent(mp);
   mimeMsg.saveChanges();
   //發(fā)送郵件
   if(props.get("mail.smtp.auth").equals("true")){
    Transport transport = session.getTransport("smtp");
    transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password"));
    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
//    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC));
    transport.close();
   }else{
    Transport.send(mimeMsg);
   }
   System.out.println("郵件發(fā)送成功");
  } catch (MessagingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return true;
 }

// public void toSendMail(SendMailParam sendMailParam){
//  MailFileSendUtils email = new MailFileSendUtils(sendMailParam.getSmtp(), sendMailParam.getUsername(), sendMailParam.getPassword());
//  email.sendMail(sendMailParam.getFrom(), sendMailParam.getTo(), sendMailParam.getSubject(), sendMailParam.getContent(), sendMailParam.getFilepath());
// }


 public static void main(String[] args) {
  String smtp = "smtp.exmail.qq.com";
  String username = "發(fā)送的郵箱賬號(hào)";
  String password = "發(fā)送的郵箱密碼";
  String from = "發(fā)送的郵箱";
  String[] to = {"接收郵件的郵箱"};
//  String[] copyto = {"抄送的郵箱"};
  String subject = "主題6";
  String content = "郵件內(nèi)容6";
  String filename = "附件的文件";
  MailFileSendUtils email = new MailFileSendUtils(smtp, username, password);
//  email.sendMail(from, to, copyto, subject, content, filename);
  email.sendMail(from, to, subject, content, filename);
 }

}

(附:SSL版)

public class MailFileSendUtils {

 private Properties props; //系統(tǒng)屬性
 private Session session; //郵件會(huì)話對(duì)象
 private MimeMessage mimeMsg; //MIME郵件對(duì)象
 private Multipart mp; //Multipart對(duì)象,郵件內(nèi)容,標(biāo)題,附件等內(nèi)容均添加到其中后再生成MimeMessage對(duì)象

 /**
  * Constructor
  * @param
  */
 public MailFileSendUtils(){
  props = System.getProperties();
  props.put("mail.smtp.auth","false");
  session = Session.getDefaultInstance(props, null);
  session.setDebug(true);
  mimeMsg = new MimeMessage(session);
  mp = new MimeMultipart();
 }

 /**
  * Constructor
  * @param smtp 郵件發(fā)送服務(wù)器
  */
 public MailFileSendUtils(String smtp,
        String username,
        String password){
  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
  props = System.getProperties();
  MailSSLSocketFactory sf = null;
  try {
   sf = new MailSSLSocketFactory();
  } catch (GeneralSecurityException e) {
  }
  sf.setTrustAllHosts(true);
  props.put("mail.smtp.auth","true");
  props.put("mail.smtp.host", smtp);
  props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
  props.put("mail.smtp.socketFactory.fallback", "false");
  props.put("mail.smtp.ssl.enable", "true");
  props.put("mail.smtp.port", "465");
  props.put("mail.smtp.ssl.socketFactory", sf);

//  props.put("username", username);
//  props.put("password", password);
  session = Session.getInstance(props, new Authenticator() {
   @Override
   protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(username, password);
   }
  });
  session.setDebug(true);
  mimeMsg = new MimeMessage(session);
  mp = new MimeMultipart();
 }

 /**
  * 發(fā)送郵件
  */
 public boolean sendMail(String from,
       String[] to,
       String subject,
       String content,
       String filename) {
  try {
   //設(shè)置發(fā)信人
   mimeMsg.setFrom(new InternetAddress(from));
   //設(shè)置接收人
   for (int i = 0; i < to.length; i++) {
    mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i]));
   }
   //設(shè)置抄送人
//   for (int i = 0; i < copyto.length; i++) {
//    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i]));
//   }
   //設(shè)置主題
   mimeMsg.setSubject(subject);
   //設(shè)置正文
   BodyPart bp = new MimeBodyPart();
   bp.setContent(content, "text/html;charset=utf-8");
   mp.addBodyPart(bp);
   //設(shè)置附件
   bp = new MimeBodyPart();
   FileDataSource fileds = new FileDataSource(filename);
   bp.setDataHandler(new DataHandler(fileds));
   bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
   mp.addBodyPart(bp);
   mimeMsg.setContent(mp);
   mimeMsg.saveChanges();
   //發(fā)送郵件
   if(props.get("mail.smtp.auth").equals("true")){
    Transport transport = session.getTransport("smtp");
    transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password"));
    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
//    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC));
    transport.close();
   }else{
    Transport.send(mimeMsg);
   }
   System.out.println("郵件發(fā)送成功");
  } catch (MessagingException e) {
   e.printStackTrace();
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  return true;
 }

 public boolean toSendMail(SendMailParam sendMailParam){
  MailFileSendUtils email = new MailFileSendUtils(
    sendMailParam.getSmtp(),
    sendMailParam.getUsername(),
    sendMailParam.getPassword());
  email.sendMail(
    sendMailParam.getFrom(),
    sendMailParam.getTo(),
    sendMailParam.getSubject(),
    sendMailParam.getContent(),
    sendMailParam.getFilepath());
  return true;
 }


// public static void main(String[] args) {
//  String smtp = "smtp.mxhichina.com";
//  String username = "郵箱";
//  String password = "郵箱密碼";
//  String from = "誰(shuí)去發(fā)";
//  String[] to = {"發(fā)給誰(shuí)"};
////  String[] copyto = {"抄送的郵箱"};
//  String subject = "huawei";
//  String content = "郵件內(nèi)容6666";
//  String filename = "gdt-3583118353-ad-20170823.xls";
//  MailFileSendUtils email = new MailFileSendUtils(smtp, username, password);
////  email.sendMail(from, to, copyto, subject, content, filename);
//  email.sendMail(from, to, subject, content, filename);
// }

}

在項(xiàng)目中使用這套工具,main方法我注釋掉,然后使用toSendMail(SendMailParam sendMailParam)。
這里定義的SendMailParam 為:

public class SendMailParam {
 private String smtp;
 private String username;
 private String password;
 private String from;//發(fā)送人
 private String[] to;//接收人
 //  String[] copyto = {"909891736@qq.com"};
 private String subject;//郵件主題
 private String content;//郵件內(nèi)容
 private String filepath;//文件拿到的路徑

 public SendMailParam(){
  this.smtp = "smtp.exmail.qq.com";//例子
  this.username = "郵箱賬號(hào)";
  this.password = "郵箱密碼";
  this.from = "郵箱";
  this.subject = "";
  this.content = "";
  this.filepath = "";
 }

 public String getSmtp() {
  return smtp;
 }

 public void setSmtp(String smtp) {
  this.smtp = smtp;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String getFrom() {
  return from;
 }

 public void setFrom(String from) {
  this.from = from;
 }

 public String[] getTo() {
  return to;
 }

 public void setTo(String[] to) {
  this.to = to;
 }

 public String getSubject() {
  return subject;
 }

 public void setSubject(String subject) {
  this.subject = subject;
 }

 public String getContent() {
  return content;
 }

 public void setContent(String content) {
  this.content = content;
 }

 public String getFilepath() {
  return filepath;
 }

 public void setFilepath(String filepath) {
  this.filepath = filepath;
 }
}

maven依賴包

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4.7</version>
 </dependency>

gradle依賴包

compile "javax.mail:mail:1.4.7"

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一篇文章帶你入門Java方法詳解

    一篇文章帶你入門Java方法詳解

    這篇文章主要介紹了簡(jiǎn)單了解Java方法的定義和使用實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java中RSA加密解密的實(shí)現(xiàn)方法分析

    Java中RSA加密解密的實(shí)現(xiàn)方法分析

    這篇文章主要介紹了Java中RSA加密解密的實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了java實(shí)現(xiàn)RSA加密解密算法的具體步驟與相關(guān)操作技巧,并附帶了關(guān)于RSA算法密鑰長(zhǎng)度/密文長(zhǎng)度/明文長(zhǎng)度的參考說(shuō)明,需要的朋友可以參考下
    2017-07-07
  • 詳解在Spring-Boot中實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式

    詳解在Spring-Boot中實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式

    這篇文章主要介紹了詳解在Spring-Boot中實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-07-07
  • SpringMVC多線程下無(wú)法獲取請(qǐng)求的原因和解決方法

    SpringMVC多線程下無(wú)法獲取請(qǐng)求的原因和解決方法

    從問題出發(fā),逐步講透在SpringMVC中使用RequestContextHolder對(duì)象在多線程情況下無(wú)法獲取請(qǐng)求的真實(shí)原因,本文將和大家一起深入剖析SpringMVC多線程下無(wú)法獲取請(qǐng)求的原因和解決,需要的朋友可以參考下
    2024-04-04
  • java中的異或問題代碼解析

    java中的異或問題代碼解析

    這篇文章主要介紹了java中的異或問題代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Springboot為什么加載不上application.yml的配置文件

    Springboot為什么加載不上application.yml的配置文件

    這篇文章主要介紹了Springboot為什么加載不上application.yml的配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • SpringBoot 如何自定義請(qǐng)求參數(shù)校驗(yàn)

    SpringBoot 如何自定義請(qǐng)求參數(shù)校驗(yàn)

    這篇文章主要介紹了SpringBoot 如何自定義請(qǐng)求參數(shù)校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 如何將DeepSeek 集成到 Java 的 Spring Boot 項(xiàng)目中

    如何將DeepSeek 集成到 Java 的 Spring Boot&

    本文介紹了如何將DeepSeek集成到Java的SpringBoot項(xiàng)目中,包括準(zhǔn)備工作、集成步驟和示例說(shuō)明,感興趣的朋友一起看看吧
    2025-02-02
  • Java斗地主發(fā)牌課程設(shè)計(jì)

    Java斗地主發(fā)牌課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了Java斗地主發(fā)牌課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署

    idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署

    本文主要介紹了idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論

西城区| 金沙县| 舒城县| 旅游| 铅山县| 龙川县| 房产| 星座| 基隆市| 买车| 安西县| 玉门市| 岐山县| 仲巴县| 潼南县| 奉新县| 盘山县| 桓台县| 绥中县| 甘肃省| 东平县| 洞头县| 关岭| 乐业县| 将乐县| 晋城| 永福县| 安泽县| 醴陵市| 崇信县| 宁陕县| 北安市| 邵阳市| 观塘区| 响水县| 盖州市| 新化县| 洪雅县| 庐江县| 兴海县| 沂南县|