com.sun.mail.imap
类 IMAPStore

java.lang.Object
  继承者 javax.mail.Service
      继承者 javax.mail.Store
          继承者 com.sun.mail.imap.IMAPStore
所有已实现的接口:
ResponseHandler, QuotaAwareStore
直接已知子类:
IMAPSSLStore

public class IMAPStore
extends Store
implements QuotaAwareStore, ResponseHandler

This class provides access to an IMAP message store.

Applications that need to make use of IMAP-specific features may cast a Store object to an IMAPStore object and use the methods on this class. The getQuota and setQuota methods support the IMAP QUOTA extension. Refer to RFC 2087 for more information.

See the com.sun.mail.imap package documentation for further information on the IMAP protocol provider.

WARNING: The APIs unique to this class should be considered EXPERIMENTAL. They may be changed in the future in ways that are incompatible with applications using the current APIs.

版本:
1.72, 07/05/04
作者:
John Mani, Bill Shannon, Jim Glennon

字段摘要
static int RESPONSE
          A special event type for a StoreEvent to indicate an IMAP response, if the mail.imap.enableimapevents property is set.
 
从类 javax.mail.Service 继承的字段
debug, session, url
 
构造方法摘要
  IMAPStore(Session session, URLName url)
          Constructor that takes a Session object and a URLName that represents a specific IMAP server.
protected IMAPStore(Session session, URLName url, String name, int defaultPort, boolean isSSL)
          Constructor used by this class and by IMAPSSLStore subclass.
 
方法摘要
 void close()
          Close this Store.
protected  void finalize()
          Stop the event dispatcher thread so the queue can be garbage collected.
 Folder getDefaultFolder()
          Get the default folder, representing the root of this user's namespace.
 Folder getFolder(String name)
          Get named folder.
 Folder getFolder(URLName url)
          Get named folder.
 Folder[] getPersonalNamespaces()
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Personal namespaces.
 Quota[] getQuota(String root)
          Get the quotas for the named quota root.
 Folder[] getSharedNamespaces()
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Shared namespaces.
 Folder[] getUserNamespaces(String user)
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the User's namespaces.
 void handleResponse(Response r)
          Response handler method.
 boolean hasCapability(String capability)
          Return true if the specified capability string is in the list of capabilities the server announced.
 void idle()
          Use the IMAP IDLE command (see RFC 2177), if supported by the server, to enter idle mode so that the server can send unsolicited notifications without the need for the client to constantly poll the server.
 boolean isConnected()
          Check whether this store is connected.
protected  boolean protocolConnect(String host, int pport, String user, String password)
          Implementation of protocolConnect().
 void setPassword(String password)
          Set the password that will be used for subsequent connections after this Store is first connected (for example, when creating a connection to open a Folder).
 void setQuota(Quota quota)
          Set the quotas for the quota root specified in the quota argument.
 void setUsername(String user)
          Set the user name that will be used for subsequent connections after this Store is first connected (for example, when creating a connection to open a Folder).
 
从类 javax.mail.Store 继承的方法
addFolderListener, addStoreListener, notifyFolderListeners, notifyFolderRenamedListeners, notifyStoreListeners, removeFolderListener, removeStoreListener
 
从类 javax.mail.Service 继承的方法
addConnectionListener, connect, connect, connect, connect, getURLName, notifyConnectionListeners, queueEvent, removeConnectionListener, setConnected, setURLName, toString
 
从类 java.lang.Object 继承的方法
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

RESPONSE

public static final int RESPONSE
A special event type for a StoreEvent to indicate an IMAP response, if the mail.imap.enableimapevents property is set.

另请参见:
常量字段值
构造方法详细信息

IMAPStore

public IMAPStore(Session session,
                 URLName url)
Constructor that takes a Session object and a URLName that represents a specific IMAP server.


IMAPStore

protected IMAPStore(Session session,
                    URLName url,
                    String name,
                    int defaultPort,
                    boolean isSSL)
Constructor used by this class and by IMAPSSLStore subclass.

方法详细信息

protocolConnect

protected boolean protocolConnect(String host,
                                  int pport,
                                  String user,
                                  String password)
                           throws MessagingException
Implementation of protocolConnect(). Will create a connection to the server and authenticate the user using the mechanisms specified by various properties.

The host, user, and password parameters must all be non-null. If the authentication mechanism being used does not require a password, an empty string or other suitable dummy password should be used.

覆盖:
Service 中的 protocolConnect
参数:
host - the name of the host to connect to
pport - the port to use (-1 means use default port)
user - the name of the user to login as
password - the user's password
返回:
true if connection successful, false if authentication failed
抛出:
AuthenticationFailedException - for authentication failures
MessagingException - for non-authentication failures

setUsername

public void setUsername(String user)
Set the user name that will be used for subsequent connections after this Store is first connected (for example, when creating a connection to open a Folder). This value is overridden by any call to the Store's connect method.

Some IMAP servers may provide an authentication ID that can be used for more efficient authentication for future connections. This authentication ID is provided in a server-specific manner not described here.

Most applications will never need to use this method.

从以下版本开始:
JavaMail 1.3.3

setPassword

public void setPassword(String password)
Set the password that will be used for subsequent connections after this Store is first connected (for example, when creating a connection to open a Folder). This value is overridden by any call to the Store's connect method.

Most applications will never need to use this method.

从以下版本开始:
JavaMail 1.3.3

hasCapability

public boolean hasCapability(String capability)
                      throws MessagingException
Return true if the specified capability string is in the list of capabilities the server announced.

抛出:
MessagingException
从以下版本开始:
JavaMail 1.3.3

isConnected

public boolean isConnected()
Check whether this store is connected. Override superclass method, to actually ping our server connection.

覆盖:
Service 中的 isConnected
返回:
true if the service is connected, false if it is not connected

close

public void close()
           throws MessagingException
Close this Store.

覆盖:
Service 中的 close
抛出:
MessagingException - for errors while closing
另请参见:
ConnectionEvent

finalize

protected void finalize()
                 throws Throwable
从类 Service 复制的描述
Stop the event dispatcher thread so the queue can be garbage collected.

覆盖:
Service 中的 finalize
抛出:
Throwable

getDefaultFolder

public Folder getDefaultFolder()
                        throws MessagingException
Get the default folder, representing the root of this user's namespace. Returns a closed DefaultFolder object.

指定者:
Store 中的 getDefaultFolder
返回:
the root Folder
抛出:
MessagingException

getFolder

public Folder getFolder(String name)
                 throws MessagingException
Get named folder. Returns a new, closed IMAPFolder.

指定者:
Store 中的 getFolder
参数:
name - The name of the Folder. In some Stores, name can be an absolute path if it starts with the hierarchy delimiter. Else it is interpreted relative to the 'root' of this namespace.
返回:
Folder object
抛出:
MessagingException
另请参见:
Folder.exists(), Folder.create(int)

getFolder

public Folder getFolder(URLName url)
                 throws MessagingException
Get named folder. Returns a new, closed IMAPFolder.

指定者:
Store 中的 getFolder
参数:
url - URLName that denotes a folder
返回:
Folder object
抛出:
MessagingException
另请参见:
URLName

getPersonalNamespaces

public Folder[] getPersonalNamespaces()
                               throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Personal namespaces.

覆盖:
Store 中的 getPersonalNamespaces
返回:
array of Folder objects
抛出:
MessagingException

getUserNamespaces

public Folder[] getUserNamespaces(String user)
                           throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the User's namespaces.

覆盖:
Store 中的 getUserNamespaces
返回:
array of Folder objects
抛出:
MessagingException

getSharedNamespaces

public Folder[] getSharedNamespaces()
                             throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Shared namespaces.

覆盖:
Store 中的 getSharedNamespaces
返回:
array of Folder objects
抛出:
MessagingException

getQuota

public Quota[] getQuota(String root)
                 throws MessagingException
Get the quotas for the named quota root. Quotas are controlled on the basis of a quota root, not (necessarily) a folder. The relationship between folders and quota roots depends on the IMAP server. Some servers might implement a single quota root for all folders owned by a user. Other servers might implement a separate quota root for each folder. A single folder can even have multiple quota roots, perhaps controlling quotas for different resources.

指定者:
接口 QuotaAwareStore 中的 getQuota
参数:
root - the name of the quota root
返回:
array of Quota objects
抛出:
MessagingException - if the server doesn't support the QUOTA extension

setQuota

public void setQuota(Quota quota)
              throws MessagingException
Set the quotas for the quota root specified in the quota argument. Typically this will be one of the quota roots obtained from the getQuota method, but it need not be.

指定者:
接口 QuotaAwareStore 中的 setQuota
参数:
quota - the quota to set
抛出:
MessagingException - if the server doesn't support the QUOTA extension

handleResponse

public void handleResponse(Response r)
Response handler method.

指定者:
接口 ResponseHandler 中的 handleResponse

idle

public void idle()
          throws MessagingException
Use the IMAP IDLE command (see RFC 2177), if supported by the server, to enter idle mode so that the server can send unsolicited notifications without the need for the client to constantly poll the server. Use a ConnectionListener to be notified of events. When another thread (e.g., the listener thread) needs to issue an IMAP comand for this Store, the idle mode will be terminated and this method will return. Typically the caller will invoke this method in a loop.

If the mail.imap.enableimapevents property is set, notifications received while the IDLE command is active will be delivered to ConnectionListeners as events with a type of IMAPStore.RESPONSE. The event's message will be the raw IMAP response string. Note that most IMAP servers will not deliver any events when using the IDLE command on a connection with no mailbox selected (i.e., this method). In most cases you'll want to use the idle method on IMAPFolder.

NOTE: This capability is highly experimental and likely will change in future releases.

The mail.imap.minidletime property enforces a minimum delay before returning from this method, to ensure that other threads have a chance to issue commands before the caller invokes this method again. The default delay is 10 milliseconds.

抛出:
MessagingException - if the server doesn't support the IDLE extension
IllegalStateException - if the store isn't connected
从以下版本开始:
JavaMail 1.4.1


Copyright © 2013. All Rights Reserved.