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

Java HtmlEmail 郵件發(fā)送的簡單實現(xiàn)代碼

 更新時間:2016年06月03日 16:06:11   投稿:jingxian  
下面小編就為大家?guī)硪黄狫ava HtmlEmail 郵件發(fā)送的簡單實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Java 項目中常常回遇到發(fā)送郵件

Java 發(fā)送郵件有幾種,今天先給大家介紹用 HtmlEmail 來發(fā)送郵件,我這里是用 Maven 來搭建的

HtmlEmail 可以抄帶HTML

首先 需要導(dǎo)入jar 包

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-email</artifactId>
   <version>1.4</version>
 </dependency>

然后我們來建立一個發(fā)送郵件的 Mail 類 JavaBean

public class Mail implements Serializable{

  private static final long serialVersionUID = -6390720891150157552L;
  public static final String ENCODEING = "UTF-8"; 

  // 服務(wù)器地址 
  private String host;
  // 發(fā)件人的郵箱 
  private String sender; 
  // 發(fā)件人昵稱 
  private String name; 
  // 賬號 
  private String username; 
  // 密碼 
  private String password; 
  // 收件人的郵箱 
  private String receiver;
  // 收件人的名稱
  private String receiverName;
  // 收件人的郵箱(key)和名稱(value)
  private Map<String, String> to;
  // 抄送人的郵箱(key)和名稱(value)
  private Map<String, String> cc;
  // 秘密抄送人的郵箱(key)和名稱(value)
  private Map<String, String> bcc;
  // 主題 
  private String subject; 
  // 信息(支持HTML)
  private String message;

  public String getHost() {
    return host;
  }
  public void setHost(String host) {
    this.host = host;
  }
  public String getSender() {
    return sender;
  }
  public void setSender(String sender) {
    this.sender = sender;
  }
  public String getReceiver() {
    return receiver;
  }
  public void setReceiver(String receiver) {
    this.receiver = receiver;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  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 getSubject() {
    return subject;
  }
  public void setSubject(String subject) {
    this.subject = subject;
  }
  public String getMessage() {
    return message;
  }
  public void setMessage(String message) {
    this.message = message;
  }
  public String getReceiverName() {
    return receiverName;
  }
  public void setReceiverName(String receiverName) {
    this.receiverName = receiverName;
  }
  public Map<String, String> getTo() {
    return to;
  }
  public void setTo(Map<String, String> to) {
    this.to = to;
  }
  public Map<String, String> getCc() {
    return cc;
  }
  public void setCc(Map<String, String> cc) {
    this.cc = cc;
  }
  public Map<String, String> getBcc() {
    return bcc;
  }
  public void setBcc(Map<String, String> bcc) {
    this.bcc = bcc;
  }
}

然后再來創(chuàng)建一個發(fā)送郵件的工具類 MailUtil

public class MailUtil {

  public Boolean send(Mail mail){
    HtmlEmail email = new HtmlEmail();
    try {
      // 這里是SMTP發(fā)送服務(wù)器的名字:163的如下:"smtp.163.com" 
      email.setHostName(mail.getHost());
      // 字符編碼集的設(shè)置 
      email.setCharset(Mail.ENCODEING);
      // 發(fā)送人的郵箱 
      email.setFrom(mail.getSender(), mail.getName()); 
      // 如果需要認證信息的話,設(shè)置認證:用戶名-密碼。分別為發(fā)件人在郵件服務(wù)器上的注冊名稱和密碼 
      email.setAuthentication(mail.getUsername(), mail.getPassword());

      // 設(shè)置收件人信息
      setTo(email, mail);
      // 設(shè)置抄送人信息
      setCc(email, mail);
      // 設(shè)置密送人信息
      setBcc(email, mail);
      // 要發(fā)送的郵件主題 
      email.setSubject(mail.getSubject());
      // 要發(fā)送的信息,由于使用了HtmlEmail,可以在郵件內(nèi)容中使用HTML標簽 
      email.setHtmlMsg(mail.getMessage());
      // 發(fā)送 
      email.send();
      if (Log.isDebugEnabled()) {
        Log.info(mail.getSender() + " 發(fā)送郵件到 " + mail.getReceiver());
      }
      return true;
    } catch (Exception e) {
      e.printStackTrace();
      Log.info(mail.getSender() + " 發(fā)送郵件到 " + mail.getReceiver() + " 失敗");
      return false;
    }
  }

  /**
   * 設(shè)置收件人信息
   * 
   * @param email 
   * @param mail
   * @throws EmailException
   */
  private void setTo(HtmlEmail email, Mail mail) throws EmailException{
    // 收件人不為空
    if (StringUtils.isNotEmpty(mail.getReceiver())) {
      // 收件人名稱不為空
      if (StringUtils.isNotEmpty(mail.getReceiverName())) {
        email.addTo(mail.getReceiver(), mail.getReceiverName());
      } else {
        email.addTo(mail.getReceiver());
      }
    }
    // 收件人 Map 不為空
    if (mail.getTo() != null) {
      for (Map.Entry<String, String> entry : mail.getTo().entrySet()) {
        // 收件人名稱不為空
        if (StringUtils.isNotEmpty(entry.getValue())) {
          email.addTo(entry.getKey(), entry.getValue());
        } else {
          email.addTo(entry.getKey());
        }
      }
    }
  }

  /**
   * 設(shè)置抄送人信息
   * 
   * @param email 
   * @param mail
   * @throws EmailException
   */
  private void setCc(HtmlEmail email, Mail mail) throws EmailException{
    // 抄送人 Map 不為空
    if (mail.getCc() != null) {
      for (Map.Entry<String, String> entry : mail.getCc().entrySet()) {
        // 抄送人名稱不為空
        if (StringUtils.isNotEmpty(entry.getValue())) {
          email.addCc(entry.getKey(), entry.getValue());
        } else {
          email.addCc(entry.getKey());
        }
      }
    }
  }

  /**
   * 設(shè)置密送人信息
   * 
   * @param email 
   * @param mail
   * @throws EmailException
   */
  private void setBcc(HtmlEmail email, Mail mail) throws EmailException{
    // 密送人 Map 不為空
    if (mail.getBcc() != null) {
      for (Map.Entry<String, String> entry : mail.getBcc().entrySet()) {
        // 密送人名稱不為空
        if (StringUtils.isNotEmpty(entry.getValue())) {
          email.addBcc(entry.getKey(), entry.getValue());
        } else {
          email.addBcc(entry.getKey());
        }
      }
    }
  }
}

寫到這里,大概也就差不多了,萬里長征只有最后一步了

測試,測試,測試

這里編寫一個 junit 方法來測試

@Test
  public void sendMail(){
    Mail mail = new Mail();
    // 設(shè)置郵件服務(wù)器 
    mail.setHost("smtp.exmail.qq.com");
    // 發(fā)件人郵件地址
    mail.setSender("chenhao@kezhanbang.cn");
    // 發(fā)件人名稱
    mail.setName("Java.小學(xué)生");
    // 登錄賬號,一般都是和郵箱名一樣吧 
    mail.setUsername("chenhao@kezhanbang.cn");
    // 發(fā)件人郵箱的登錄密碼 
    mail.setPassword("xxxxxxxx");
    // 接收人 
    mail.setReceiver("huntertochen@163.com");
    mail.setReceiverName("我要女票");
    mail.setSubject("萬里長征最后一步測試");
    String html = "<!DOCTYPE html>";
    html += "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
    html += "<title>Insert title here</title>";
    html += "</head><body>";
    html += "<div style=\"width:600px;height:400px;margin:50px auto;\">";
    html += "<h1>我來看看郵件是否發(fā)送成功呢</h1><br/><br/>";
    html += "<p>下面是通過該協(xié)議可以創(chuàng)建一個指向電子郵件地址的超級鏈接,通過該鏈接可以在Internet中發(fā)送電子郵件</p><br/>";
    html += "<a href=\"mailto:huntereagle@foxmail.com?subject=test&cc=huntertochen@163.com&body=use mailto sample\">send mail</a>";
    html += "</div>";
    html += "</body></html>";
    mail.setMessage(html);
    
    new MailUtil().send(mail);
  }

趕緊登錄郵箱看看吧

來看看這里 主題 內(nèi)容,發(fā)送人名稱和收件人名稱是否和代碼寫的一樣呢,如果一樣的話,恭喜你成功啦

到這,其實發(fā)送郵件就算完了!??!

這里在啰嗦最后一個小知識點 mailto

mailto: 通過該協(xié)議可以創(chuàng)建一個指向電子郵件地址的超級鏈接,通過該鏈接可以在Internet中發(fā)送電子郵件

我們點擊 send mail 會打開你郵件客戶端一個發(fā)送界面,如果你有寫抄帶信息,也會給你帶上

以上這篇Java HtmlEmail 郵件發(fā)送的簡單實現(xiàn)代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

深圳市| 花莲市| 青阳县| 边坝县| 钟祥市| 徐汇区| 昌图县| 平顺县| 黄山市| 丹东市| 辉县市| 津南区| 扶绥县| 博白县| 丽江市| 阳春市| 增城市| 噶尔县| 马鞍山市| 涡阳县| 衡东县| 铁岭市| 易门县| 屏东县| 滁州市| 安泽县| 河津市| 静宁县| 建宁县| 大埔县| 五华县| 东乌珠穆沁旗| 恩平市| 定兴县| 光山县| 渑池县| 宁蒗| 邛崃市| 吴江市| 武义县| 高清|