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 閱讀(3346) 評論(2)  編輯  收藏 所屬分類: java

          Feedback

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

          dfdfdfd  回復  更多評論   

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

          不錯  回復  更多評論   

          主站蜘蛛池模板: 双城市| 湖口县| 阿图什市| 比如县| 潼南县| 广丰县| 台湾省| 全南县| 许昌县| 隆林| 湖南省| 玉田县| 徐汇区| 宁乡县| 察隅县| 孝义市| 登封市| 肇庆市| 西昌市| 安化县| 姚安县| 隆子县| 大邑县| 芦溪县| 朔州市| 白沙| 历史| 察雅县| 三明市| 凉城县| 景宁| 麻江县| 垦利县| 山阳县| 贵溪市| 泾阳县| 科尔| 沁水县| 漳平市| 丰原市| 额尔古纳市|