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

java實(shí)現(xiàn)發(fā)送email小案例

 更新時(shí)間:2020年02月11日 18:00:31   作者:YangChingyuk  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)發(fā)送email小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這是一個(gè)小的發(fā)送emai的案例,供大家參考,具體內(nèi)容如下

代碼里面放了很多注解,這里多說(shuō)無(wú)益。

發(fā)送郵件實(shí)體類:

package com.yqx.emaildemo.demo;

import lombok.Data;
import org.apache.commons.mail.EmailAttachment;

import java.util.List;

/**
 * 發(fā)送郵件實(shí)體類
 *
 * @author YangChingyu-k
 * @date 2019/10/10 14:59
 */
@Data
public class MailInfo {

 /**
  * 收件人
  */
 private List<String> toAddress = null;
 /**
  * 抄送人地址
  */
 private List<String> ccAddress = null;
 /**
  * 密送人
  */
 private List<String> bccAddress = null;
 /**
  * 附件信息
  */
 private List<EmailAttachment> emailAttachments = null;
 /**
  * 郵件主題
  */
 private String subject;
 /**
  * 郵件文本內(nèi)容
  */
 private String content;

 public void addToAddress(String toAddress) {
  this.toAddress.add(toAddress);
 }

 public void addToAddress(List<String> toAddress) {
  this.toAddress.addAll(toAddress);
 }

 public void addCcAddress (List<String> ccAddress) {
  if (!ccAddress.isEmpty()) {
   this.ccAddress.addAll(ccAddress);
  }
 }

}

工具類:

package com.yqx.emaildemo.demo;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.HtmlEmail;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 發(fā)送郵件輔助工具類
 *
 * @author YangChingyu-k
 * @date 2019/10/10 15:12
 */
public class MailUtil {

 /**
  * 郵箱
  */
 private static String mailServerHost = "smtp.qq.com";

 private static String mailSenderAddress = "xxx@qq.com";

 private static String mailSenderNick = "YangChingyu-k";

 private static String mailSenderUserName = "xxx@qq.com";
 // 這里的密碼是開(kāi)啟服務(wù)之后的授權(quán)碼
 private static String mailSenderPassWord = "xxx";

 /**
  * 發(fā)送郵件(Html格式,支持附件)
  *
  * @param mailInfo
  */
 public static void sendMail(MailInfo mailInfo) {
  try {
   // 利用jar包中提供的HtmlEmail類
   HtmlEmail email = new HtmlEmail();
   // 配置信息
   // 這里用的是QQ郵箱的地址,不同的郵箱采用的地址不同,官方有說(shuō)明
   email.setHostName(mailServerHost);
   // 發(fā)送的地址,發(fā)送者昵稱
   email.setFrom(mailSenderAddress, mailSenderNick);
   // 用戶名,密碼(這里的密碼不是登錄密碼,而是開(kāi)啟POP3/SMTP服務(wù)之后獲取的授權(quán)密碼)
   email.setAuthentication(mailSenderUserName, mailSenderPassWord);
   // 編碼
   email.setCharset("UTF-8");
   // 主題
   email.setSubject(mailInfo.getSubject());
   // 內(nèi)容
   email.setHtmlMsg(mailInfo.getContent());

   // 添加附件
   List<EmailAttachment> emailAttachments = mailInfo.getEmailAttachments();
   if (!emailAttachments.isEmpty()) {
    for (int i=0; i<emailAttachments.size(); i++) {
     email.attach(emailAttachments.get(i));
    }
   }

   // 收件人
   List<String> toAddress = mailInfo.getToAddress();
   if (!toAddress.isEmpty()) {
    for (int i=0; i<toAddress.size(); i++) {
     email.addTo(toAddress.get(i));
    }
   }

   // 抄送人
   List<String> ccAddress = mailInfo.getCcAddress();
   if (!ccAddress.isEmpty()) {
    for (int i=0; i<ccAddress.size(); i++) {
     email.addCc(ccAddress.get(i));
    }
   }

   // 密送人
   List<String> bccAddress = mailInfo.getBccAddress();
   if (!bccAddress.isEmpty()) {
    for (int i=0; i<bccAddress.size(); i++) {
     email.addBcc(bccAddress.get(i));
    }
   }

   // 如果官方郵件關(guān)閉了,可以使用SSL的方式發(fā)送
   // 使用QQ郵箱是暫時(shí)不需要的
   // email.setSSLOnConnect(true);

   // 發(fā)送
   email.send();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   System.out.println("發(fā)送時(shí)間:" + sdf.format(new Date()));
   System.out.println("發(fā)送人:" + mailSenderNick);
   if (!toAddress.isEmpty()) {
    for (int i=0;i<toAddress.size();i++) {
     System.out.println("接收人:" + toAddress.get(i));
    }
   }
   System.out.println("郵件發(fā)送成功...");
   System.out.println("端口:" + email.getSmtpPort());

  } catch (Exception e) {
   System.out.println("郵件發(fā)送失敗, error: " + e.getMessage());
   e.printStackTrace();
  }
 }

}

測(cè)試main方法:

package com.yqx.emaildemo.demo;

import org.apache.commons.mail.EmailAttachment;

import java.util.ArrayList;
import java.util.List;

/**
 * 測(cè)試:發(fā)送郵件 (先new出郵件實(shí)體類,賦值之后,再利用工具類方法進(jìn)行發(fā)送操作)
 * <p>
 *  注重點(diǎn):
 *  1) 郵箱需要開(kāi)啟POP3/SMTP服務(wù)
 *  2) 使用的郵箱密碼不是登錄時(shí)的密碼,而是開(kāi)啟以上服務(wù)之后的授權(quán)碼
 *  3) 郵箱地址必須是正確存在的,否則將會(huì)被退信處理
 * </p>
 *
 * @author YangChingyu-k
 * @date 2019/10/10 15:53
 */
public class MainTest {

 public static void main(String[] args) {

  MailInfo mailInfo = new MailInfo();

  // 收件人
  List<String> toList = new ArrayList<>();
  toList.add("xxx.com");

  // 抄送人
  List<String> ccList = new ArrayList<>();
  ccList.add("xxx@qq.com");

  // 密送人
  List<String> bccList = new ArrayList<>();
  bccList.add("xxx@qq.com");

  // 添加附件
  EmailAttachment emailAttachment = new EmailAttachment();
  // 文件全路徑
  emailAttachment.setPath("C:/Users/YangChingyu-k/Desktop/lemon.txt");
  // 附件:文件全名 (文件名 + .格式)
  emailAttachment.setName("這是一個(gè)測(cè)試的附件.txt");
  // 多個(gè)附件
  List<EmailAttachment> emailAttachments = new ArrayList<>();
  emailAttachments.add(emailAttachment);
  mailInfo.setEmailAttachments(emailAttachments);

  // 收件人
  mailInfo.setToAddress(toList);
  // 抄送人
  mailInfo.setCcAddress(ccList);
  // 密送人
  mailInfo.setBccAddress(bccList);
  // 主題
  mailInfo.setSubject("This is a object");
  // 內(nèi)容
  mailInfo.setContent("<h2>這是一段測(cè)試的內(nèi)容~</h2>");

  // 調(diào)用工具類方法進(jìn)行發(fā)送
  MailUtil.sendMail(mailInfo);

 }

}

我覺(jué)得注釋?xiě)?yīng)該寫(xiě)得很清楚了吧,這是作為一個(gè)demo來(lái)寫(xiě)的,分享一下,在寫(xiě)的時(shí)候一直遇到找不到地址之類的,或者服務(wù)沒(méi)開(kāi)之類的報(bào)錯(cuò),這里都寫(xiě)了注重點(diǎn)的東西,這是第一次在代碼里面一直寫(xiě)很多注釋。

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

相關(guān)文章

  • SpringMvc/SpringBoot HTTP通信加解密的實(shí)現(xiàn)

    SpringMvc/SpringBoot HTTP通信加解密的實(shí)現(xiàn)

    這篇文章主要介紹了SpringMvc/SpringBoot HTTP通信加解密的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • RocketMQ中的消費(fèi)者啟動(dòng)流程解讀

    RocketMQ中的消費(fèi)者啟動(dòng)流程解讀

    這篇文章主要介紹了RocketMQ中的消費(fèi)者啟動(dòng)流程解讀,RocketMQ是一款高性能、高可靠性的分布式消息中間件,消費(fèi)者是RocketMQ中的重要組成部分,消費(fèi)者負(fù)責(zé)從消息隊(duì)列中獲取消息并進(jìn)行處理,需要的朋友可以參考下
    2023-10-10
  • 使用Java后端操作Docker的詳細(xì)教程

    使用Java后端操作Docker的詳細(xì)教程

    Docker 是現(xiàn)代開(kāi)發(fā)和部署流程中不可或缺的一部分,它簡(jiǎn)化了應(yīng)用程序的環(huán)境配置、打包和分發(fā),使得在不同機(jī)器上運(yùn)行相同的應(yīng)用變得更加輕松和一致,本文將詳細(xì)介紹如何使用命令行工具(CMD)操控 Docker 來(lái)配置環(huán)境,需要的朋友可以參考下
    2025-02-02
  • 利用Java理解sql的語(yǔ)法(實(shí)例講解)

    利用Java理解sql的語(yǔ)法(實(shí)例講解)

    下面小編就為大家分享一篇利用Java理解sql的語(yǔ)法(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收的詳細(xì)步驟

    SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收的詳細(xì)步驟

    這篇文章主要介紹了SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收功能,我們使用主流的SpringBoot框架整合RocketMQ來(lái)講解,使用方便快捷,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Java中Struts2的值棧ValueStack詳解

    Java中Struts2的值棧ValueStack詳解

    這篇文章主要介紹了Java中Struts2的值棧ValueStack詳解,值棧(ValueStack)就是 OGNL 表達(dá)式存取數(shù)據(jù)的地方,在一個(gè)值棧中,封裝了一次請(qǐng)求所需要的所有數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容實(shí)戰(zhàn)代碼

    Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容實(shí)戰(zhàn)代碼

    在日常工作中,有時(shí)可能會(huì)需要從龐大的PDF文檔中提取其中所包含的文本內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于如何利用Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容,需要的朋友可以參考下
    2024-01-01
  • 關(guān)于@Value注解取不到值的幾種情況

    關(guān)于@Value注解取不到值的幾種情況

    這篇文章主要介紹了關(guān)于@Value注解取不到值的幾種情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Hibernate組件映射代碼詳解

    Hibernate組件映射代碼詳解

    這篇文章主要介紹了Hibernate組件映射代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • java swing實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    java swing實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了java swing實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評(píng)論

南投市| 浏阳市| 定陶县| 上饶市| 南召县| 桑日县| 桦川县| 永川市| 穆棱市| 曲阜市| 乐东| 新密市| 汉中市| 镶黄旗| 阿拉善左旗| 泾源县| 阿合奇县| 托克托县| 温泉县| 定日县| 江西省| 交口县| 志丹县| 浙江省| 杭锦后旗| 彰化县| 米易县| 竹溪县| 宁安市| 兴安县| 滦南县| 潮州市| 定远县| 越西县| 公主岭市| 炉霍县| 陕西省| 晋州市| 高邑县| 娱乐| 象山县|