MailUserBean.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:5k
源码类别:

Java编程

开发平台:

Java

  1. /*
  2.  * @(#)MailUserBean.java 1.6 03/01/10
  3.  *
  4.  * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions
  8.  * are met:
  9.  * 
  10.  * - Redistributions of source code must retain the above copyright
  11.  *   notice, this list of conditions and the following disclaimer.
  12.  * 
  13.  * - Redistribution in binary form must reproduce the above copyright
  14.  *   notice, this list of conditions and the following disclaimer in the
  15.  *   documentation and/or other materials provided with the distribution.
  16.  * 
  17.  * Neither the name of Sun Microsystems, Inc. or the names of contributors
  18.  * may be used to endorse or promote products derived from this software
  19.  * without specific prior written permission.
  20.  * 
  21.  * This software is provided "AS IS," without a warranty of any kind. ALL
  22.  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
  23.  * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
  24.  * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
  25.  * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES
  26.  * SUFFERED BY LICENSEE AS A RESULT OF  OR RELATING TO USE, MODIFICATION
  27.  * OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
  28.  * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
  29.  * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
  30.  * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
  31.  * ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
  32.  * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  33.  * 
  34.  * You acknowledge that Software is not designed, licensed or intended
  35.  * for use in the design, construction, operation or maintenance of any
  36.  * nuclear facility.
  37.  *
  38.  */
  39. package demo;
  40. import java.util.*;
  41. import javax.mail.*;
  42. import javax.naming.*;
  43. /**
  44.  * This JavaBean is used to store mail user information.
  45.  */
  46. public class MailUserBean {
  47.     private Folder folder;
  48.     private String hostname;
  49.     private String username;
  50.     private String password;
  51.     private Session session;
  52.     private Store store;
  53.     private URLName url;
  54.     private String protocol = "imap";
  55.     private String mbox = "INBOX";
  56.     public MailUserBean(){}
  57.     /**
  58.      * Returns the javax.mail.Folder object.
  59.      */
  60.     public Folder getFolder() {
  61.         return folder;
  62.     }
  63.     
  64.     /**
  65.      * Returns the number of messages in the folder.
  66.      */
  67.     public int getMessageCount() throws MessagingException {
  68.         return folder.getMessageCount();
  69.     }
  70.     /**
  71.      * hostname getter method.
  72.      */
  73.     public String getHostname() {
  74.         return hostname;
  75.     }
  76.     
  77.     /**
  78.      * hostname setter method.
  79.      */
  80.     public void setHostname(String hostname) {
  81.         this.hostname = hostname;
  82.     }
  83.     /**
  84.      * username getter method.
  85.      */
  86.     public String getUsername() {
  87.         return username;
  88.     }
  89.     /**
  90.      * username setter method.
  91.      */
  92.     public void setUsername(String username) {
  93.         this.username = username;
  94.     }
  95.     /**
  96.      * password getter method.
  97.      */
  98.     public String getPassword() {
  99.         return password;
  100.     }
  101.     /**
  102.      * password setter method.
  103.      */
  104.     public void setPassword(String password) {
  105.         this.password = password;
  106.     }
  107.     /**
  108.      * session getter method.
  109.      */
  110.     public Session getSession() {
  111.         return session;
  112.     }
  113.     /**
  114.      * session setter method.
  115.      */
  116.     public void setSession(Session s) {
  117.         this.session = session;
  118.     }
  119.     /**
  120.      * store getter method.
  121.      */
  122.     public Store getStore() {
  123.         return store;
  124.     }
  125.     /**
  126.      * store setter method.
  127.      */
  128.     public void setStore(Store store) {
  129.         this.store = store;
  130.     }
  131.     /**
  132.      * url getter method.
  133.      */
  134.     public URLName getUrl() {
  135.         return url;
  136.     }
  137.     /**
  138.      * Method for checking if the user is logged in.
  139.      */
  140.     public boolean isLoggedIn() {
  141.         return store.isConnected();
  142.     }
  143.       
  144.     /**
  145.      * Method used to login to the mail host.
  146.      */
  147.     public void login() throws Exception {
  148.         url = new URLName(protocol, getHostname(), -1, mbox, 
  149.                           getUsername(), getPassword());
  150. /*
  151.  * First, try to get the session from JNDI,
  152.  * as would be done under J2EE.
  153.  */
  154. try {
  155.     InitialContext ic = new InitialContext();
  156.     Context ctx = (Context)ic.lookup("java:comp/env");
  157.     session = (Session)ctx.lookup("MySession");
  158. } catch (Exception ex) {
  159.     // ignore it
  160. }
  161. // if JNDI fails, try the old way that should work everywhere
  162. if (session == null) {
  163.     Properties props = null;
  164.     try {
  165. props = System.getProperties();
  166.     } catch (SecurityException sex) {
  167. props = new Properties();
  168.     }
  169.     session = Session.getInstance(props, null);
  170. }
  171.         store = session.getStore(url);
  172.         store.connect();
  173.         folder = store.getFolder(url);
  174.         
  175.         folder.open(Folder.READ_WRITE);
  176.     }
  177.     /**
  178.      * Method used to login to the mail host.
  179.      */
  180.     public void login(String hostname, String username, String password) 
  181.         throws Exception {
  182.             
  183.         this.hostname = hostname;
  184.         this.username = username;
  185.         this.password = password;
  186.     
  187.         login();
  188.     }
  189.     /**
  190.      * Method used to logout from the mail host.
  191.      */
  192.     public void logout() throws MessagingException {
  193.         folder.close(false);
  194.         store.close();
  195.         store = null;
  196.         session = null;
  197.     }
  198. }