茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729579 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00055.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2008/3/18 6:49:51

JavaMail API的使用:

  • 建置JavaMail的開發環境:
    (1)下載mail.jar:至 http://java.sun.com/products/javamail/downloads/index.html 下載JavaMail 1.3.2 API(或至本站下載)
    (2)下載activation.jar:至 http://java.sun.com/products/javabeans/glasgow/jaf.html 下載JAF 1.0.2(或至本站下載)
    (3)解壓縮JavaMail,將mail.jar複製到到應用程式目錄下的WEB-INFO/lib目錄中即可
    (4)解壓縮JAF,將activation.jar複製到到應用程式目錄下的WEB-INFO/lib目錄中即可
  • 撰寫簡單輸入介面程式及寄信程式:(取自JSP 2.0技術手冊)

  • 簡單的郵件訊息輸入介面:
    <html>
    <head>
      <title>JavaMail.html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    </head>
    <body>
    
    <h2>利用JavaMail來傳送電子郵件</h2>
    <form name="Form" method="post" action="JavaMail.jsp">
      <p>寄信人:<input type="text" name="From" size="30" maxlength="30"></p>
      <p>收信人:<input type="text" name="To" size="30" maxlength="30"></p>
      <p>主題:<input type="text" name="Subject" size="30" maxlength="30"></p>
      <p>內容:</p><p><textarea name="Message" cols=40 rows=5></textarea></p>
      <input type="submit" value="傳送">  <input type="reset" value="清除">
    </form>
    </body>
    </html>
    

    信件寄出::
    <%@ page import="javax.mail.*" %>                        <==?#93;含在mail.jar
    <%@ page import="javax.mail.internet.*" %>            <==?#93;含在mail.jar
    <%@ page import="javax.activation.*" %>                <==?#93;含在activation.jar
    <%@ page import="java.util.*,java.io.*" %>
    <%@ page contentType="text/html;charset=big5" %>
    
    <html>
    <head>
      <title>JavaMail.jsp</title>
    </head>
    <body>
     <h2>利用JavaMail來傳送電子郵件 </h2>
    <%
        InternetAddress[] address = null;
        request.setCharacterEncoding("big5");
        String mailserver   = "mail.dwu.edu.tw";                           <=此處所?#93;必須和寄件人的信箱同一台伺服器,
        String From         = request.getParameter("From");                    並且必須考?#123;伺服器是否會mail-rely
        String to           = request.getParameter("To");
        String Subject      = request.getParameter("Subject");
        String messageText  = request.getParameter("Message");
        boolean sessionDebug = false;
    
    try {
      // ?#93;定所要用的Mail 伺服器和所使用的傳送協定
      java.util.Properties props = System.getProperties();
      props.put("mail.host",mailserver);
      props.put("mail.transport.protocol","smtp");           <=?#93;定所使用的protocol為SMTP(Small Mail Transfer Protocol)
      // 產生新的Session 服務
      javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
      mailSession.setDebug(sessionDebug);
      Message msg = new MimeMessage(mailSession);
      // ?#93;定傳送郵件的發信人
      msg.setFrom(new InternetAddress(From));
      // ?#93;定傳送郵件至收信人的信箱
      address = InternetAddress.parse(to,false);
      msg.setRecipients(Message.RecipientType.TO, address);
      // ?#93;定信中的主題
      msg.setSubject(Subject);
      // ?#93;定送信的時間
      msg.setSentDate(new Date());
      // ?#93;定傳送信的MIME Type
      msg.setText(messageText);
      // 送信
      Transport.send(msg);
      out.println("郵件己順利傳送");
    }
        catch (MessagingException mex) {
        mex.printStackTrace();
        }
    %>
     </body>
    </html>
    

    簡單的郵件訊息輸入介面+附加檔案功能+可用HTML格式:
    <html>
    <head>
      <title>JavaMail.html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    </head>
    <body>
    
    <h2>利用JavaMail來傳送電子郵件 - 附?#91;檔案</h2>
    <form name="SendMessage" Method="post" action="JavaMail3.jsp" enctype="multipart/form-data">
      <p>寄信人:<input type="text" name="From" size="30" maxlength="30"></p>
      <p>收信人:<input type="text" name="To" size="30" maxlength="30"></p>
      <p>主題:<input type="text" name="Subject" size="30" maxlength="30"></p>
      <p>格式:<select name="Type" size="1">
            <option value="text/plain">Text</option>
            <option value="text/html">HTML</option>
               </select></p>
      <p>附?#91;檔案:<input type="file" name="FileName" size="20" maxlength="20"></p>
      <p>內容:</p><p><textarea name="Message" cols=40 rows=5></textarea></p>
        <input type="submit" value="傳送">
      <input type="reset" value="清除">
    </form>
    </body>
    </html>
    

    信件寄出--(JavaMail3.jsp):
    <%@ page import="javax.mail.*" %>
    <%@ page import="javax.mail.internet.*" %>
    <%@ page import="javax.activation.*" %>
    <%@ page import="java.util.*,java.io.*" %>
    <%@ page import="com.oreilly.servlet.MultipartRequest" %>
    <%@ page contentType="text/html;charset=big5" %>
    
    <html>
    <head>
      <title>JavaMail.jsp</title>
    </head>
    <body>
    
    <h2>利用JavaMail來傳送電子郵件 - 附?#91;檔案</h2>
    
    <%
        InternetAddress[] address = null;
    
        request.setCharacterEncoding("big5");
        MultipartRequest multi = new MultipartRequest(request , "." , 5*1024*1024 , "big5");
    
        String mailserver   = "mail.dwu.edu.tw";
        String From         = multi.getParameter("From");
        String to           = multi.getParameter("To");
        String Subject      = multi.getParameter("Subject");
        String type     = multi.getParameter("Type");
        String messageText  = multi.getParameter("Message");
        String FileName     = multi.getFilesystemName("FileName");
    
        boolean sessionDebug = false;
    
        try {
    
            // ?#93;定所要用的Mail 伺服器和所使用的傳送協定
            java.util.Properties props = System.getProperties();
    
            props.put("mail.host",mailserver);
            props.put("mail.transport.protocol","smtp");
    
            // 產生新的Session 服務
            javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
            mailSession.setDebug(sessionDebug);
    
            Message msg = new MimeMessage(mailSession);
    
            // ?#93;定傳送郵件的發信人
             msg.setFrom(new InternetAddress(From));
    
            // ?#93;定傳送郵件至收信人的信箱
            address = InternetAddress.parse(to,false);
            msg.setRecipients(Message.RecipientType.TO, address);
    
            // ?#93;定信中的主題
            msg.setSubject(Subject);
    
            // ?#93;定送信的時間
            msg.setSentDate(new Date());
    
            if (FileName != null)
            {
                    File file = new File(FileName);
    
                // 如果有附?#91;檔案時,先將郵件內容部份先存起來
                    MimeBodyPart mbp1 = new MimeBodyPart();
    
                // ?#93;定郵件內容的型態為 text/plain 或 text/html
                mbp1.setContent(messageText, type + ";charset=big5");
    
                    // 再來對檔案作處理
                    MimeBodyPart mbp2 = new MimeBodyPart();
                    FileDataSource fds = new FileDataSource(FileName);
                    mbp2.setDataHandler(new DataHandler(fds));
                    mbp2.setFileName(MimeUtility.encodeText(fds.getName(), "big5", "B"));
    
                    // 最後再將二者整合起來,當作一份郵件送出
                    Multipart mp = new MimeMultipart();
                    mp.addBodyPart(mbp1);
                    mp.addBodyPart(mbp2);
                    msg.setContent(mp);
            }
            else
            {
                    // 若沒有檔案時,就直接存郵件內容
                     msg.setContent(messageText,type + ";charset=big5");
            }
    
            Transport.send(msg);
            out.println("郵件己順利傳送");
    
        }
            catch (MessagingException mex)
            {
            mex.printStackTrace();
        }
    %>
    
    </body>
    </html>
    
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|