⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailserverfolder.java

📁 一个java写的加密算法
💻 JAVA
字号:
/* * Copyright 2004-2005 Sun Microsystems, Inc.  All rights reserved. * Use is subject to license terms. *//* * @(#)MailServerFolder.java	 */package samples.connectors.mailconnector.ra.inbound;import javax.mail.*;import javax.mail.event.*;import javax.mail.internet.*;import java.util.*;import java.util.logging.*;import java.net.*;import java.io.*;import java.rmi.*;import java.rmi.registry.*;import java.rmi.server.*;import javax.rmi.*;import javax.naming.*;import samples.connectors.mailconnector.ra.*;//import samples.connectors.mailconnector.ra.outbound.*;import samples.connectors.mailconnector.share.*;/** * @author Alejandro Murillo * *///public class MailServerFolder implements MessageCountListenerpublic class MailServerFolder{    private javax.mail.Session 		session;    private javax.mail.Authenticator 	authenticator;    private javax.mail.Store 		store;    private javax.mail.Folder 		folder;    private Properties 			mailProperties;    private String 			folderName, userName, password,                   			serverName, protocol;    public static final Logger logger   =         Logger.getLogger("samples.connectors.mailconnector.ra.inbound");    /**     * Constructor.     *     * @param spec the ActivationSpec for the MDB     */        public MailServerFolder(ActivationSpecImpl spec)	throws Exception    {	folderName  = spec.getFolderName();	userName    = spec.getUserName();	password    = spec.getPassword();	serverName  = spec.getServerName();	protocol    = spec.getProtocol();        this.authenticator = null;	mailProperties = new Properties();	mailProperties.setProperty("mail.transport.protocol", "smtp");	mailProperties.setProperty("mail.store.protocol", protocol);	mailProperties.setProperty("mail.smtp.host", serverName);                try        {            open();        } catch (Exception te) {            logger.severe("[S] Caught an exception when opening the " +                "Folder");	    //te.printStackTrace();            throw te;        }    }    /**     * Closes the folder.     *     * @exception Exception if the close fails     */    public void close()  	throws Exception     {         /*          * The JavaMail Session object does not have an explicit close.            */	 //logger.info("Listener::close()");         this.store.close();         this.store = null;         this.session = null;         this.authenticator = null;    }    /**      * Opens a connection to the mail server.     *     * @exception Exception  if the open fails     */    private void open() 	throws Exception     {	try	{	    // Get a session object	    session = javax.mail.Session.getDefaultInstance(mailProperties);	    // Get a store object	    store = session.getStore();        } catch (Exception te) {            logger.info("[MSF] Caught an exception when obtaining a " +                "JavaMail Session");	    throw te;        }        store.connect(serverName, userName, password);        folder = store.getFolder(folderName);        if ((folder == null) || (! this.folder.exists())) 	{            Exception e = new Exception("Folder " + folderName +                " does not exist or is not found");            throw e;        }                folder.open(javax.mail.Folder.READ_WRITE);        //folder.addMessageCountListener(this); //set this as the folder MessageCountListener     }     private void reopen() 	throws Exception     {        if ( !folder.isOpen() ) 	{            //logger.info("[MSF] Reopening folder");            folder.open(javax.mail.Folder.READ_WRITE);            //folder.addMessageCountListener(this); //set this as the folder MessageCountListener        }    }    /**     * Retrieves new messages.     *     * @return an array of messages     */    public Message[] getNewMessages()	throws Exception    { 	reopen(); //Make sure the folder is open        //        // Deliver only new messages to the MDB        //	try 	{            if (folder.hasNewMessages())	    {                int newMsgs    = folder.getNewMessageCount();	      	int msgCount   = folder.getMessageCount();	      	Message msgs[] = 	      	    folder.getMessages(msgCount - newMsgs + 1, msgCount);	        return msgs;	    }        } catch (Exception e) { 	    logger.info("[MSF] Exception obtaining messages from mail server");	}	return null;    }    /**     * Retrieves headers of new messages.     *     * @return a string array containing the message headers     */    public String[] getNewMessageHeaders()	throws Exception    {        reopen(); //Make sure the folder is open        //        // Deliver only new messages to the MDB        //	try 	{	    	    if (folder.hasNewMessages())	    {                int newMsgs    = folder.getNewMessageCount();	        int msgCount   = folder.getMessageCount();	      	Message[] msgs = 	      	    folder.getMessages(msgCount - newMsgs + 1, msgCount);   	        String[] headers = new String[msgs.length];		logger.info("messages length: " + msgs.length);		logger.info("headers length: " + headers.length);	        for (int i = 0; i < headers.length; i++)	        {		    logger.info("[MSF] Packing message with SUBJECT: " +		        msgs[i].getSubject());		    headers[i] = msgs[i].getSubject();	        }	        return headers;	    }        } catch (Exception e) { 	    logger.severe("[MSF] Exception obtaining messages from mail server:");            e.printStackTrace(); 	}	return null;    }          public boolean hasNewMessages()	throws Exception    {        reopen(); //Make sure the folder is open/****        logger.info("Folder <" + folder.getName() + "> has ("                     + folder.getUnreadMessageCount() +  ") unread messages");        logger.info("Folder <" + folder.getName() + "> has ("                     + folder.getNewMessageCount() +  ") NEW messages");****/	return  folder.hasNewMessages();    }            /**      *  These 2 methods should be uncommented when this class implements     *  the MessageCountListener interface     *     *        public void messagesAdded(MessageCountEvent e)     {        logger.info("messagesAdded: ENTERED");        try 	{            Message[] msgs = e.getMessages();               logger.info("messagesAdded: " + msgs.length);            for (int i = 0; i < msgs.length; i++)            {                logger.info("<MSF> Added Message with SUBJECT: " +		        msgs[i].getSubject());            }        } catch (Exception ex) { 	    logger.info("[S] Got an Exception in messagesAdded");	}    }        public void messagesRemoved(MessageCountEvent e)     {        logger.info("messagesRemoved: ENTERED");        try 	{            Message[] msgs = e.getMessages();               logger.info("messagesRemoved: " + msgs.length);            for (int i = 0; i < msgs.length; i++)            {                logger.info("<MSF> Removed Message with SUBJECT: " +		        msgs[i].getSubject());            }        } catch (Exception ex) { 	    logger.info("[S] Got an Exception in messagesRemoved");	}    }     *     */    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -