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 哈哈

          不錯  回復  更多評論   

          主站蜘蛛池模板: 神木县| 江都市| 凤冈县| 清流县| 诸城市| 武城县| 乌海市| 天峻县| 威信县| 临邑县| 泸水县| 锦屏县| 水城县| 商洛市| 松潘县| 靖边县| 河南省| 公主岭市| 大足县| 临朐县| 阳新县| 桃源县| 元谋县| 当雄县| 华蓥市| 龙泉市| 龙胜| 交城县| 株洲市| 深水埗区| 定安县| 石景山区| 桐乡市| 庆阳市| 砀山县| 六盘水市| 永靖县| 嵩明县| 壤塘县| 德昌县| 秦皇岛市|