通過HtmlEmail 發送郵件


今天第一次來上海市虹口圖書館上自習,感覺還是很爽的。自己擼代碼學會了發送郵件。啥都不說了,直接擼代碼吧!

  首先 必須引進來三個jar包:

compile 'javax.mail:mail:1.4.7'
compile 'org.apache.commons:commons-email:1.3.2'
compile 'javax.activation:activation:1.1'
這是我gradle配置文件的配制方法。

1.Mail對象  里面包含發送郵件的信息

import java.io.Serializable;

/**
 * Mail屬性實體
 *
 * @author shadow
 *
 */
@SuppressWarnings("serial")
public class Mail implements Serializable {

  public static final String ENCODEING = "UTF-8";

  private String host; // 服務器地址

  private String sender; // 發件人的郵箱

  private String receiver; // 收件人的郵箱

  private String name; // 發件人昵稱

  private String username; // 賬號

  private String password; // 密碼

  private String subject; // 主題

  private String message; // 信息(支持HTML)

  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;
  }

}

2.發送郵件的工具類

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.log4j.Logger;

/**
 * 郵件發送工具實現類
 *
 * @author shadow
 * @create 2013/07/12
 */
public class MailUtil {

  protected final Logger logger = Logger.getLogger(getClass());

  public boolean send(Mail mail) {
    // 發送email
    HtmlEmail email = new HtmlEmail();
    try {
      // 這里是SMTP發送服務器的名字:163的如下:"smtp.163.com"
      email.setHostName(mail.getHost());
      // 字符編碼集的設置
      email.setCharset(Mail.ENCODEING);
      // 收件人的郵箱
      email.addTo(mail.getReceiver());
      // 發送人的郵箱
      email.setFrom(mail.getSender(), mail.getName());
      // 如果需要認證信息的話,設置認證:用戶名-密碼。分別為發件人在郵件服務器上的注冊名稱和密碼
      email.setAuthentication(mail.getUsername(), mail.getPassword());
      // 要發送的郵件主題
      email.setSubject(mail.getSubject());
      // 要發送的信息,由於使用了HtmlEmail,可以在郵件內容中使用HTML標簽
      email.setMsg(mail.getMessage());
      // 發送
      email.send();
      if (logger.isDebugEnabled()) {
        logger.debug(mail.getSender() + " 發送郵件到 " + mail.getReceiver());
      }
      return true;
    } catch (EmailException e) {
      e.printStackTrace();
      logger.info(mail.getSender() + " 發送郵件到 " + mail.getReceiver()
          + " 失敗");
      return false;
    }
  }

}

3.測試類

/**
 * Created by DELL on 2016/6/19.
 */
public class test {
  public static void main(String[] args) {
    Mail mail = new Mail();
    mail.setHost("smtp.163.com"); // 設置郵件服務器,如果不用163的,自己找找看相關的
    mail.setSender("baizhanshijava@163.com");
    mail.setReceiver("baizhanshijava@163.com"); // 接收人
    mail.setUsername("baizhanshijava@163.com"); // 登錄賬號,一般都是和郵箱名一樣吧
    mail.setPassword("XXXxxxx"); // 發件人郵箱的登錄密碼  此密碼必須是你在郵箱設置打開pop3和SMTP之后設置的密碼,否則收不到郵件的
    mail.setSubject("nishishsi");
    mail.setMessage("welcome to china");
    new MailUtil().send(mail);
  }
}

4.總結 :不管怎么說還是有點成就感的。以后每周還是要來圖書館充充電的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM