亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? javamailservlet.java

?? SUN的JAVA MAIL API
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * @(#)JavaMailServlet.java	1.3 99/12/06
 *
 * Copyright 1998, 1999 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * This software is the proprietary information of Sun Microsystems, Inc.  
 * Use is subject to license terms.
 * 
 */

import java.io.*;
import java.util.*;
import java.text.*;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


/**
 * This is a servlet that demonstrates the use of JavaMail APIs
 * in a 3-tier application. It allows the user to login to an 
 * IMAP store, list all the messages in the INBOX folder, view
 * selected messages, compose and send a message, and logout.
 * <p>
 * Please note: This is NOT an example of how to write servlets! 
 * This is simply to show that JavaMail can be used in a servlet.
 * <p>
 * For more information on this servlet, see the 
 * JavaMailServlet.README.txt file. 
 * <p>
 * For more information on servlets, see 
 * <a href="http://java.sun.com/products/java-server/servlets/index.html">
 * http://java.sun.com/products/java-server/servlets/index.html</a>
 *
 * @author Max Spivak
 */
public class JavaMailServlet extends HttpServlet implements SingleThreadModel {
    String protocol = "imap";
    String mbox = "INBOX";


    /**
     * This method handles the "POST" submission from two forms: the
     * login form and the message compose form. The login form has the
     * following parameters: <code>hostname</code>, <code>username</code>,
     * and <code>password</code>. The <code>send</code> parameter denotes
     * that the method is processing the compose form submission.
     */
    public  void doPost(HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {

        // get the session
	HttpSession ssn = req.getSession(true);

	String send = req.getParameter("send");
        String host = req.getParameter("hostname");
        String user = req.getParameter("username");
        String passwd = req.getParameter("password");
        URLName url = new URLName(protocol, host, -1, mbox, user, passwd);

        ServletOutputStream out = res.getOutputStream();
	res.setContentType("text/html");
	out.println("<html><body bgcolor=\"#CCCCFF\">");

	if (send != null) {
	    // process message sending
	    send(req, res, out, ssn);

	} else {
	    // initial login

	    // create 
	    MailUserData mud = new MailUserData(url);
	    ssn.putValue("javamailservlet", mud);
	    
	    try {
		Properties props = System.getProperties();
		props.put("mail.smtp.host", host);
		Session session = Session.getDefaultInstance(props, null);
		session.setDebug(false);
		Store store = session.getStore(url);
		store.connect();
		Folder folder = store.getDefaultFolder();
		if (folder == null) 
		    throw new MessagingException("No default folder");
		
		folder = folder.getFolder(mbox);
		if (folder == null)
		    throw new MessagingException("Invalid folder");
		
		folder.open(Folder.READ_WRITE);
		int totalMessages = folder.getMessageCount();
		Message[] msgs = folder.getMessages();
		FetchProfile fp = new FetchProfile();
		fp.add(FetchProfile.Item.ENVELOPE);
		folder.fetch(msgs, fp);
		
		// track who logged in
		System.out.println("Login from: " + store.getURLName());
		
		// save stuff into MUD
		mud.setSession(session);
		mud.setStore(store);
		mud.setFolder(folder);
		
		// splash
		out.print("<center>");
		out.print("<font face=\"Arial,Helvetica\" font size=+3>");
		out.println("<b>Welcome to JavaMail!</b></font></center><p>");

		// folder table
		out.println("<table width=\"50%\" border=0 align=center>");
		// folder name column header
		out.print("<tr><td width=\"75%\" bgcolor=\"#ffffcc\">");
		out.print("<font face=\"Arial,Helvetica\" font size=-1>");
		out.println("<b>FolderName</b></font></td><br>");
		// msg count column header
		out.print("<td width=\"25%\" bgcolor=\"#ffffcc\">");
		out.print("<font face=\"Arial,Helvetica\" font size=-1>");
		out.println("<b>Messages</b></font></td><br>");
		out.println("</tr>");
		// folder name
		out.print("<tr><td width=\"75%\" bgcolor=\"#ffffff\">");
		out.print("<a href=\"" + HttpUtils.getRequestURL(req) + "\">" +
			  "Inbox" + "</a></td><br>");
		// msg count
		out.println("<td width=\"25%\" bgcolor=\"#ffffff\">" + 
			    totalMessages + "</td>");
		out.println("</tr>");
		out.println("</table");
	    } catch (Exception ex) {
		out.println(ex.toString());            
	    } finally {
		out.println("</body></html>");
		out.close();
	    }
	}
    }


    /**
     * This method handles the GET requests for the client.
     */
    public void doGet (HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {

        HttpSession ses = req.getSession(false); // before we write to out
        ServletOutputStream out = res.getOutputStream();
	MailUserData mud = getMUD(ses);

	if (mud == null) {
	    res.setContentType("text/html");
	    out.println("<html><body>Please Login (no session)</body></html>");
	    out.close();
	    return;
	}

	if (!mud.getStore().isConnected()) {
	    res.setContentType("text/html");
	    out.println("<html><body>Not Connected To Store</body></html>");
	    out.close();
	    return;
	}


	// mux that takes a GET request, based on parameters figures
	// out what it should do, and routes it to the
	// appropriate method

	// get url parameters
	String msgStr = req.getParameter("message");
        String logout = req.getParameter("logout");
	String compose = req.getParameter("compose");
	String part = req.getParameter("part");
	int msgNum = -1;
	int partNum = -1;

	// process url params
	if (msgStr != null) {
	    // operate on message "msgStr"
	    msgNum = Integer.parseInt(msgStr);

	    if (part == null) {
		// display message "msgStr"
                res.setContentType("text/html");
		displayMessage(mud, req, out, msgNum);

	    } else if (part != null) {
		// display part "part" in message "msgStr"
		partNum = Integer.parseInt(part);
                displayPart(mud, msgNum, partNum, out, res);
	    }

	} else if (compose != null) {
	    // display compose form
	    compose(mud, res, out);

        } else if (logout != null) {
	    // process logout
            try {
                mud.getFolder().close(false);
                mud.getStore().close();
		ses.invalidate();
                out.println("<html><body>Logged out OK</body></html>");
            } catch (MessagingException mex) {
                out.println(mex.toString());
            }

	} else {
	    // display headers
	    displayHeaders(mud, req, out);
	}
    }

    /* main method to display messages */
    private void displayMessage(MailUserData mud, HttpServletRequest req, 
				ServletOutputStream out, int msgNum) 
	throws IOException {
	    
	out.println("<html>");
        out.println("<HEAD><TITLE>JavaMail Servlet</TITLE></HEAD>");
	out.println("<BODY bgcolor=\"#ccccff\">");
	out.print("<center><font face=\"Arial,Helvetica\" ");
	out.println("font size=\"+3\"><b>");
	out.println("Message " + (msgNum+1) + " in folder " + 
		    mud.getStore().getURLName() + 
		    "/INBOX</b></font></center><p>");

	try {
	    Message msg = mud.getFolder().getMessage(msgNum);

	    // first, display this message's headers
	    displayMessageHeaders(mud, msg, out);

	    // and now, handle the content
	    Object o = msg.getContent();
            
	    //if (o instanceof String) {
	    if (msg.isMimeType("text/plain")) {
		out.println("<pre>");
		out.println((String)o);
		out.println("</pre>");
	    //} else if (o instanceof Multipart){
	    } else if (msg.isMimeType("multipart/*")) {
		Multipart mp = (Multipart)o;
		int cnt = mp.getCount();
		for (int i = 0; i < cnt; i++) {
		    displayPart(mud, msgNum, mp.getBodyPart(i), i, req, out);
		}
	    } else {
		out.println(msg.getContentType());
	    }

	} catch (MessagingException mex) {
	    out.println(mex.toString());
	}

	out.println("</BODY></html>");
	out.close();
    }

    /** 
     * This method displays a message part. <code>text/plain</code>
     * content parts are displayed inline. For all other parts,
     * a URL is generated and displayed; clicking on the URL
     * brings up the part in a separate page.
     */
    private void displayPart(MailUserData mud, int msgNum, Part part, 
			     int partNum, HttpServletRequest req, 
			     ServletOutputStream out) 
	throws IOException {

	if (partNum != 0)
	    out.println("<p><hr>");

        try {

	    String sct = part.getContentType();
	    if (sct == null) {
		out.println("invalid part");
		return;
	    }
	    ContentType ct = new ContentType(sct);
	    
	    if (partNum != 0)
		out.println("<b>Attachment Type:</b> " +   
			    ct.getBaseType() + "<br>");

	    if (ct.match("text/plain")) {  
		// display text/plain inline
		out.println("<pre>");
		out.println((String)part.getContent());
		out.println("</pre>");

	    } else {
		// generate a url for this part
		String s;
		if ((s = part.getFileName()) != null)
		    out.println("<b>Filename:</b> " + s + "<br>");
		s = null;
		if ((s = part.getDescription()) != null)
		    out.println("<b>Description:</b> " + s + "<br>");
		
		out.println("<a href=\"" +
			    HttpUtils.getRequestURL(req) + 
			    "?message=" +
			    msgNum + "&part=" +
			    partNum + "\">Display Attachment</a>");
	    }
	} catch (MessagingException mex) {
	    out.println(mex.toString());
	}
    }

    /**
     * This method gets the stream from for a given msg part and 
     * pushes it out to the browser with the correct content type.
     * Used to display attachments and relies on the browser's
     * content handling capabilities.
     */
    private void displayPart(MailUserData mud, int msgNum,
			     int partNum, ServletOutputStream out, 
			     HttpServletResponse res) 
	throws IOException {

	Part part = null;
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色呦呦国产精品| 欧美一区二区精品| 777欧美精品| 久久精品亚洲国产奇米99| 亚洲色图欧美在线| 国产一区二区导航在线播放| 在线观看一区二区视频| 久久一区二区三区国产精品| 中文字幕一区二区三区av| 国产肉丝袜一区二区| 久久99精品国产.久久久久久| 3d动漫精品啪啪一区二区竹菊| 久久精品99久久久| 欧美午夜宅男影院| 国产欧美日韩亚州综合| 蜜臀精品一区二区三区在线观看 | 91丨porny丨户外露出| 欧美刺激午夜性久久久久久久| 亚洲国产美国国产综合一区二区| 成人国产精品免费观看动漫 | 一区二区在线观看免费| 国产盗摄女厕一区二区三区| 欧美成人女星排名| 精品国产乱码久久| 久久精品免费在线观看| 日本视频在线一区| 91精品国产综合久久香蕉麻豆| 亚洲精选视频在线| 99国产精品国产精品久久| 国产色产综合色产在线视频 | 国产一区二区三区高清播放| 91精品国产入口在线| 亚洲va韩国va欧美va精品| 色综合久久久久久久久| 亚洲精品中文在线影院| 在线视频你懂得一区二区三区| 亚洲免费在线视频一区 二区| av在线免费不卡| 亚洲欧美日韩电影| 欧美无砖专区一中文字| 日韩高清不卡在线| 精品欧美一区二区久久 | 美国十次了思思久久精品导航| 美腿丝袜亚洲综合| 精品女同一区二区| 国产一区二区视频在线| 国产日本欧美一区二区| 不卡一区中文字幕| 亚洲精品大片www| 欧美日韩mp4| 精品一区二区三区的国产在线播放| 欧美变态口味重另类| 国产成人免费在线视频| 一区二区在线电影| 日韩一级二级三级| 高清不卡在线观看| 亚洲影院理伦片| 久久综合色之久久综合| 99久久777色| 日本在线不卡一区| 国产精品欧美综合在线| 欧美亚一区二区| 国产一区二区三区不卡在线观看| 国产精品高潮久久久久无| 欧美精选午夜久久久乱码6080| 国产真实精品久久二三区| 中文字幕一区二区三中文字幕| 精品视频色一区| 国产凹凸在线观看一区二区| 亚洲资源中文字幕| 国产婷婷精品av在线| 欧美私模裸体表演在线观看| 精品一二线国产| 亚洲高清在线精品| 日本一区二区久久| 4438亚洲最大| 91小视频免费看| 国内精品在线播放| 亚洲成人免费视| 国产精品国产精品国产专区不蜜| 8v天堂国产在线一区二区| 99热这里都是精品| 极品少妇一区二区三区精品视频| 亚洲美腿欧美偷拍| 中文字幕欧美区| 精品国产一区二区三区久久影院| 91免费视频网址| 成人在线综合网| 毛片一区二区三区| 午夜欧美电影在线观看| 综合久久久久综合| 亚洲国产成人午夜在线一区| 欧美成人猛片aaaaaaa| 欧美精品xxxxbbbb| 欧美在线free| 99国产精品一区| 成人激情文学综合网| 国产制服丝袜一区| 韩国av一区二区三区在线观看| 亚洲成年人网站在线观看| 亚洲精品免费播放| 日韩一区中文字幕| 一区二区中文视频| 中文字幕巨乱亚洲| 国产欧美精品在线观看| 久久综合丝袜日本网| 亚洲精品一区二区三区香蕉| 91精品婷婷国产综合久久| 欧美精品一二三四| 欧美日本在线看| 欧美电影一区二区| 91麻豆精品国产自产在线观看一区 | 性做久久久久久久久| 亚洲视频在线观看三级| 综合久久综合久久| 亚洲精品日韩一| 一区二区三区在线观看动漫| 亚洲老妇xxxxxx| 亚洲影院免费观看| 亚洲大片在线观看| 日韩精品久久久久久| 男人的天堂久久精品| 久久99国产精品久久99果冻传媒| 免费亚洲电影在线| 国产一区美女在线| 波多野结衣视频一区| 色8久久精品久久久久久蜜| 色拍拍在线精品视频8848| 欧美性生交片4| 欧美一级在线免费| 国产三级三级三级精品8ⅰ区| 国产视频不卡一区| 亚洲美女免费视频| 首页综合国产亚洲丝袜| 国产美女在线精品| av在线播放一区二区三区| 在线精品视频免费播放| 在线不卡欧美精品一区二区三区| 欧美一级专区免费大片| 久久精品这里都是精品| 亚洲免费伊人电影| 日韩精品三区四区| 国产成人免费在线| 色综合天天综合狠狠| 91精品免费观看| 久久久久高清精品| 亚洲色图欧美激情| 蜜桃视频一区二区三区| 高清视频一区二区| 欧美日韩亚洲国产综合| 亚洲精品在线观看网站| 亚洲黄色免费电影| 精品午夜久久福利影院| 91丨九色丨尤物| 欧美一区二区高清| 亚洲欧洲日韩在线| 老鸭窝一区二区久久精品| youjizz久久| 欧美二区三区91| 1区2区3区欧美| 九九**精品视频免费播放| 97久久久精品综合88久久| 日韩欧美精品在线视频| 亚洲欧美日韩国产综合| 国产一区二区影院| 欧美绝品在线观看成人午夜影视| 国产精品人人做人人爽人人添| 亚洲成a人v欧美综合天堂下载| 国产成人亚洲精品狼色在线 | 欧美精品777| 中文字幕一区av| 日本91福利区| 在线看不卡av| 日本一区二区三区在线观看| 麻豆精品一区二区av白丝在线| 91蜜桃在线免费视频| 久久久久九九视频| 老司机精品视频线观看86| 欧美在线不卡一区| 亚洲日本一区二区三区| 国产福利一区二区三区在线视频| 制服丝袜激情欧洲亚洲| 一区二区三区欧美在线观看| 国产91丝袜在线观看| 欧美xingq一区二区| 五月天激情综合| 欧美日韩国产精品成人| 一区二区三区av电影| 99久久精品国产观看| 国产精品欧美一级免费| 懂色av一区二区在线播放| 久久综合一区二区| 韩国成人福利片在线播放| 日韩精品一区二区三区视频| 婷婷中文字幕一区三区| 在线视频你懂得一区二区三区| 亚洲欧美韩国综合色| 91丨国产丨九色丨pron| 综合久久久久综合| 一本色道久久综合亚洲91|