posts - 25,  comments - 25,  trackbacks - 0
          javamail
          海風 發表于 2005-7-13 23:04:29

          http://www.javachina.cn/Commend.jsp

          從Sun的官方網站上下載到JavaMail類文件包。除
          此之外還需要Sun的JAF(JavaBeans Activation Framework ),否則JavaMail將不能運行。

          HTML郵件表格

            JSP最大的特色之一就是能把項目分類或劃分成許多組件,從而提高了組件的重利用率,
          也降低了編程的難度。因此我們在編程的時候也要想著如何把大的問題劃分成一個個模塊:
              模塊一 一個HTML表單,能把電子郵件信息傳送給JSP程序

            模塊二 一個處理和發送郵件的JSP頁面

          JavaMail的基礎知識

            使用JavaMail是發送電子郵件所需要的組件 。

            JavaMail的機構使處理電子郵件非常容易。下面列出了一些我們需要的類:

            1.Properties

            JavaMail需要Properties來創建一個session對象。它將尋找字符串"mail.smtp.host",
          屬性值就是發送郵件的主機,如:

             Properties props = new Properties ();

             props.put("mail.smtp.host", "smtp.abcd.com");//可以換上你的smtp主機名。

            2.Session

            這個Session類代表JavaMail 中的一個郵件session. 每一個基于 JavaMail的應用程序
          至少有一個session但是可以有任意多的session。 在這個例子中, Session對象需要知道用
          來處理郵件的SMTP 服務器。為了做到這一點,你可以參照下面的例子用Properties 來創建
          一個Session 對象

            Session sendMailSession;

            sendMailSession = Session.getInstance(props, null);

            3.Transport

            郵件是既可以被發送也可以被受到。JavaMail使用了兩個不同的類來完成這兩個功能:
          Transport 和 Store。 Transport 是用來發送信息的,而Store用來收信。對于這的教程我
          們只需要用到Transport對象。Store的用法請參看Sun的JavaMail文檔。

            用法:Transport transport;

             transport = sendMailSession.getTransport("smtp");

            用JavaMail Session對象的getTransport 方法來初始化Transport。傳過去的字符串申
          明了對象所要使用的協議,如"smtp"。這將為我們省了很多時間。因為JavaMail以境內置了
          很多協議的實現方法。

            注意: JavaMail并不是絕對支持每一個協議,目前支持IMAP、 SMTP和 POP3。

            4.Message

            Message對象將存儲我們實際發送的電子郵件信息,Message對象被作為一個MimeMessag
          e對象來創建并且需要知道應當選擇哪一個JavaMail session。

            使用方法是:Message newMessage = new MimeMessage(sendMailSession);

            JavaMail結合JSP

            一、構建JSP程序

            前面我們建造了一個HTML表單用來發送郵件信息,又介紹了JavaMail中的一些對象和方
          法。現在我們將把這些組件集合起來來構成我們的郵件系統。

            第一步也是最重要的一步,確信在page指令中導入了需要的類。除了JavaMail的相關的
          類和JAF外,不要忘了導入java.util.date ,因為我們需要它來給郵件蓋上時間戳。

            <%

             @ page import= " javax.mail.*, javax.mail.internet.*, javax.activation.*,
          java.util.*"

            %>

          下一步,創建郵件發送出去的確認信息,如"你的郵件已發送,請返回"

            二、創建并發送Message對象

            創建Message 對象的方法我們在第三課中就以討論過了,我們可以用Message來處理消息
          了,就像在Message對象上使用get和set屬性一樣簡單。在這一部分使用了很多request.get
          Parameter()。

            newMessage.setFrom(new InternetAddress(request.getParameter("from")));

            newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(reques
          t.getParameter("to")));

            newMessage.setSubject(request.getParameter("subject"));

            newMessage.setSentDate(new Date());

            newMessage.setText(request.getParameter("text"));

            現在終于可以把消息發送出去了:

            transport.send(newMessage);

          三、完整的程序

            上面的都是一些零零碎碎的代碼,現在我們把它們寫成一個完整的JSP程序。注意要捕捉
          任何錯誤并把它們顯示給用戶。

            源程序二:JavaMail 電子郵件發送系統的JSP實現程序代碼:

            <%@ page

             import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util
          .*"

            %>

            <html>

            <head>

             <TITLE>JavaMail 電子郵件發送系統</TITLE>

            </HEAD>

            <BODY>

            <%

             try{

              Properties props = new Properties();

              Session sendMailSession;

              Store store;

              Transport transport;

              sendMailSession = Session.getInstance(props, null);

              props.put("mail.smtp.host", "smtp.abcd.com");

              Message newMessage = new MimeMessage(sendMailSession);

              newMessage.setFrom(new InternetAddress(request.getParameter("from")));

              newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(re
          quest.getParameter("to")));

              newMessage.setSubject(request.getParameter("subject"));

              newMessage.setSentDate(new Date());

              newMessage.setText(request.getParameter("text"));

              transport = sendMailSession.getTransport("smtp");

              transport.send(newMessage);

            %>

            <p>你的郵件已發送,請返回。</p>

            <%

             }

              catch(MessagingException m)

              {

                out.println(m.toString());

               }

             %>

            </BODY>

            </HTML>

          posted on 2005-09-07 11:24 子玉 閱讀(475) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(7)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 澄城县| 夏津县| 蒙自县| 启东市| 通化市| 阿瓦提县| 同德县| 南平市| 宝应县| 进贤县| 错那县| 花莲市| 军事| 宝坻区| 垣曲县| 盐池县| 定边县| 宜昌市| 文登市| 常熟市| 哈巴河县| 姚安县| 云安县| 临汾市| 昭平县| 周宁县| 板桥市| 会同县| 无极县| 渑池县| 高邑县| 乳山市| 若尔盖县| 北流市| 新营市| 克山县| 九江市| 大冶市| 蓝山县| 随州市| 湘潭县|