使用commons email發送郵件

來源:互聯網
上載者:User
使用commons email發送郵件

在項目中,一直來是使用spring對java mail的封裝,來發郵件的。雖然spring的封裝已經大大簡化了發送郵件的複雜度,但是今天要介紹下apache commons email組件,對java mail進行了更好的封裝,對於用戶端的調用,已經是相當地方便了。

commons-email maven庫地址:
<dependency>
  <groupId>commons-email</groupId>
  <artifactId>commons-email</artifactId>
  <version>1.1</version>
</dependency>

commons-email實現是相當的簡單,下面介紹下幾個重要的類實現

1)Email
一個抽象類別,對java mail進行了封裝,提供主要介面如下
setHostName(String):設定smtp伺服器位址
setSmtpPort(int):設定smtp伺服器端
setAuthenticator(Authenticator):設定授權帳號和密碼
setSSL(boolean ssl):是否採用ssl方式串連服務

setMailSession(Session):設定與伺服器串連session

setCharset(String):設定郵件主體編碼

setFrom(String):設定寄件者地址
addTo(String):添加收件者地址
addCc(String):添加抄送人地址
addBcc(String):添加密送人地址
addReplyTo(String):添加回複人地址

setSubject(String):設定郵件標題
setMsg(String):設定郵件主體

send():發送郵件

2)SimpleEmail
繼承Email,實現了setMsg(String msg)方法,發送文字格式設定郵件,調用非常簡單SimpleEmail email = new SimpleEmail();
email.setSSL(true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo("**@**.com");
email.setFrom("**@**.com");
email.setSubject("subject");
email.setCharset("GBK");
email.setMsg("message");
email.send();

3)MultiPartEmail
繼承Email,多了一個添加附件的方法:
attach(URL, String, String)
attach(URL, String, String, String)
attach(DataSource, String, String)
attach(DataSource, String, String, String)
attach(EmailAttachment)

調用方式如下:MultiPartEmail email = new MultiPartEmail();
email.setSSL(true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo("**@**.com");
email.setFrom("**@**.com");
email.setSubject("subject");
email.setCharset("GBK");
email.setMsg("message");
email.attach("file:///***.pom.xml", "pom.xml", "pom"); 
email.send();

4)HtmlEmail
繼承MultiPartEmail,與SimpleEmail相比,多了一個setHtmlMsg(String msg)方法,使用者佈建html格式內容,調用方式同SimpleEmail幾乎一致HtmlEmail email = new HtmlEmail();
email.setSSL(true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo("**@**.com");
email.setFrom("**@**.com");
email.setSubject("subject");
email.setCharset("GBK");
email.setHtmlMsg("<html><body><b>this is email message!</body></html>");
email.send();

當然,commons email只提供了對smtp協議的封裝,不包括對pop協議的封裝,所以只能發送郵件,不能接受郵件。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.