<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在JSP中使用JavaMail

    Posted on 2006-09-30 15:33 my 閱讀(172) 評論(0)  編輯  收藏 所屬分類: java Web
    什么是JavaMail

      JavaMail是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。

      雖然JavaMail是Sun的API之一,但它目前還沒有被加在標(biāo)準(zhǔn)的java開發(fā)工具包中(Java Development Kit),這就意味著你在使用前必須另外下載JavaMail文件。除此以外,你還需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的運行很復(fù)雜,在這里簡單的說就是JavaMail的運行必須得依賴于它的支持。在Windows 2000下使用需要指定這些文件的路徑,在其它的操作系統(tǒng)上也類似。

      接下來要講解的是這篇指南的最難理解的部分。

      這篇指南包括三部分:HTML表格、關(guān)于JavaMail、JavaMail和JSP的結(jié)合。

    第一部分:HTML表格

      第一部分提供了一個最基本的基于HTML的email發(fā)送收取程序的例子。第二部分則講述JavaMail的工作原理。第三部分則介紹將JavaMail加入JSP,創(chuàng)建一個基本的email發(fā)送收取程序。

      劃分組件

      JSP最重要的特性是能將整個網(wǎng)頁劃分成一些細(xì)小的組件。這里使用的組件包括:

      ●一個用來將email的信息發(fā)送給JSP的HTML表格;

      ●一個JSP頁面用來處理和發(fā)送信件。 
     
    第一步,就是創(chuàng)建一個HTML表格用來給JSP頁面發(fā)送信息。你可以將以下的HTML代碼復(fù)制到你的電腦上:

    用來發(fā)送email的HTML源代碼

     

    <HTML>
    <BODY>
    <FORM action="sendmail.jsp" method="post">
    <TABLE align="center">
    <TR>
    <TD width="50%">
    To:<BR><INPUT name="to" size="25">
    </TD>
    <TD width="50%">
    From:<BR><INPUT name="from" size="25">
    </TD>
    </TR>
    <TR>
    <TD colspan="2">
    Subject:<BR><INPUT name="subject" size="50">
    </TD>
    </TR>
    <TR>
    <TD colspan="2">
    Message:<BR><TEXTAREA name="text" rows=25 cols=85></TEXTAREA>
    </TD>
    </TR>
    </TABLE>
    <INPUT type="submit" name="cb_submit" value=" Send ">
    <INPUT type="reset" name="cb_reset" value=" Clear ">
    </FORM>
    </BODY>
    </HTML>

      以上這段程序?qū)?chuàng)建一個包含email基本信息(例如:收件地址、發(fā)送地址、主題和內(nèi)容)的文件。當(dāng)然你可以根據(jù)你自己的需要來決定這個文件包含那些信息。

      這個HTML文件的使用有兩點要求:第一點是生成的文件必須發(fā)送給接下來將介紹的程序使用。在這個例子中就是sendmail.jsp,但在你使用時,必須用這個文件在系統(tǒng)里的URL來代替它;第二點是必須有空間來允許用戶發(fā)送email。

      第二部分將對JavaMail的特征進(jìn)行一些分析,為在第三部分創(chuàng)建JSP程序作準(zhǔn)備。所以接下來我們將學(xué)習(xí)JavaMail。
    第二部分:關(guān)于JavaMail
    文檔的使用 

      下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程序的組件。你可以通過閱讀文檔來獲得更多這方面的信息。

      組件發(fā)送郵件需要使用JavaMail,它使對郵件的操作變得簡單易用。

    屬性對象

      JavaMail需要創(chuàng)建一個格式為"mail.smtp.host"的文件用來發(fā)送信息。
    Properties props = new Properties ();
    props.put("mail.smtp.host", "smtp.jspinsider.com");

    對話對象

      所有的基于JavaMail的程序都至少需要一個或全部的對話目標(biāo)。

    Session sendMailSession;
    sendMailSession = Session.getInstance(props, null);

    傳輸

      郵件的傳輸只有送出或受到兩種狀態(tài)。JavaMail將這兩種不同狀態(tài)描述為傳輸和儲存。傳輸將送出郵件,而儲存將收取郵件。

    Transport transport;
    transport = sendMailSession.getTransport("smtp");

      使用JavaMail能為我們節(jié)約大量的時間。JavaMail能代替所有的SMTP的工作。

      注意:JavaMail并不能完全的支持所有的郵件發(fā)送收取工作。它目前僅支持IMAP、SMTP和POP3,除此以外你只有等待新的JavaMail版本或自己開發(fā)協(xié)議。

    信息對象

      信息對象將把你所發(fā)送的郵件真實的反映出來。

    Message newMessage = new MimeMessage(sendMailSession);

      這就是我們所需要的全部四個對象。下一步將是如何將對象加入到JSP中。

    第三部分:JavaMail和JSP的結(jié)合

      創(chuàng)建JSP

      下面我們將開始將他們結(jié)合在一起。最重要的一點是要確認(rèn)根據(jù)頁面指示分類。還要記得在郵件上標(biāo)注java.util.date。

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

      其次,創(chuàng)建郵件發(fā)送的確認(rèn)信息。確認(rèn)信息可以是任意的,一般常用"你的郵件已經(jīng)發(fā)送出去了(Your mail has been sent)。"

    信息是如何創(chuàng)建和發(fā)送的

      我們在第二部分里已經(jīng)討論過信息對象的創(chuàng)建。我們下面將對信息進(jìn)行操作。這就和設(shè)置信息對象的屬性一樣簡單。你可以通過下面的程序來實現(xiàn)這項操作。

    newMessage.setFrom(new InternetAddress(request.getParameter("from")));
    newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));
    newMessage.setSubject(request.getParameter("subject"));
    newMessage.setSentDate(new Date());
    newMessage.setText(request.getParameter("text"));

    現(xiàn)在將開始發(fā)送信息。通過JavaMail來實現(xiàn)它非常簡單。

      transport.send(newMessage);

    將所有的組件結(jié)合在一起

      現(xiàn)在所有的組件都已經(jīng)齊全了。現(xiàn)在將它們都放在JSP里面。要注意每一個錯誤信息,并將它反饋給用戶。代碼如下,你可以通過復(fù)制它們直接使用:

    Sample JSP email Utility Using JavaMail
    <%@ page
    import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util.*"
    %>
    <html>
    <head>
    <TITLE>JSP meets JavaMail, what a sweet combo.</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.jspinsider.com");
    Message newMessage = new MimeMessage(sendMailSession);
    newMessage.setFrom(new InternetAddress(request.getParameter("from")));
    newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));
    newMessage.setSubject(request.getParameter("subject"));
    newMessage.setSentDate(new Date());
    newMessage.setText(request.getParameter("text"));
    transport = sendMailSession.getTransport("smtp");
    transport.send(newMessage);
    %>
    <P>Your mail has been sent.</P>
    <%
    }
    catch(MessagingException m)
    {
    out.println(m.toString());
    }
    %>
    </BODY>
    </HTML>

    posts - 63, comments - 45, trackbacks - 0, articles - 99

    Copyright © my

    主站蜘蛛池模板: 国产成人精品日本亚洲专一区| 亚洲AV日韩AV永久无码久久| 色在线亚洲视频www| 99re热精品视频国产免费| 亚洲成a人片77777老司机| 久久久久久影院久久久久免费精品国产小说 | 曰韩无码AV片免费播放不卡| 本道天堂成在人线av无码免费| 国产极品粉嫩泬免费观看| 亚洲欧美成人一区二区三区| 国产禁女女网站免费看| 亚洲精品色在线网站| 免费在线观看毛片| 一个人免费播放在线视频看片| 亚洲男人在线无码视频| 三年片在线观看免费西瓜视频| 亚洲人成在线影院| 成视频年人黄网站免费视频| 亚洲综合色婷婷在线观看| 日韩a级毛片免费观看| www成人免费视频| 国产AV无码专区亚洲精品| 亚洲一区二区三区免费观看| 中文字幕亚洲综合小综合在线| 日韩免费无砖专区2020狼| 无码免费又爽又高潮喷水的视频 | 亚洲人成人伊人成综合网无码| 国产自国产自愉自愉免费24区 | 在线jyzzjyzz免费视频| 免费精品国自产拍在线播放| 亚洲人成色77777| 131美女爱做免费毛片| 鲁死你资源站亚洲av| 亚洲AV无码精品色午夜在线观看| 亚洲电影在线免费观看| 亚洲AV成人精品日韩一区| 亚洲乱码中文字幕综合| 日本视频一区在线观看免费| 老子影院午夜伦不卡亚洲| 亚洲国产精品无码久久久秋霞2| 1000部啪啪毛片免费看|