stone2083

          使用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協議的封裝,所以只能發送郵件,不能接受郵件。

          posted on 2008-01-22 11:02 stone2083 閱讀(3347) 評論(2)  編輯  收藏 所屬分類: java

          Feedback

          # re: 使用commons email發送郵件 2013-01-17 17:15 fgg

          dfdfdfd  回復  更多評論   

          # re: 使用commons email發送郵件[未登錄] 2015-11-05 10:01 哈哈

          不錯  回復  更多評論   

          主站蜘蛛池模板: 宁德市| 西平县| 新乡市| 桐庐县| 五常市| 吉安县| 河北区| 宁乡县| 龙岩市| 栖霞市| 德州市| 凉城县| 磐安县| 麻江县| 东阳市| 搜索| 清原| 巴青县| 资兴市| 襄樊市| 沙坪坝区| 甘德县| 渑池县| 佛冈县| 抚远县| 丰镇市| 文水县| 叶城县| 贵溪市| 凤阳县| 黄陵县| 临海市| 巨鹿县| 横峰县| 康定县| 宣武区| 芦溪县| 莲花县| 拉孜县| 油尖旺区| 集安市|