public class IMAPStore extends Store implements QuotaAwareStore, ResponseHandler
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.
The id method supports the IMAP ID extension;
see RFC 2971.
The fields ID_NAME, ID_VERSION, etc. represent the suggested field names
in RFC 2971 section 3.3 and may be used as keys in the Map containing
client values or server values.
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.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ID_ADDRESS |
static java.lang.String |
ID_ARGUMENTS |
static java.lang.String |
ID_COMMAND |
static java.lang.String |
ID_DATE |
static java.lang.String |
ID_ENVIRONMENT |
static java.lang.String |
ID_NAME |
static java.lang.String |
ID_OS |
static java.lang.String |
ID_OS_VERSION |
static java.lang.String |
ID_SUPPORT_URL |
static java.lang.String |
ID_VENDOR |
static java.lang.String |
ID_VERSION |
static int |
RESPONSE
A special event type for a StoreEvent to indicate an IMAP
response, if the mail.imap.enableimapevents property is set.
|
| Constructor and Description |
|---|
IMAPStore(Session session,
URLName url)
Constructor that takes a Session object and a URLName that
represents a specific IMAP server.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close this Store.
|
Folder |
getDefaultFolder()
Get the default folder, representing the root of this user's
namespace.
|
Folder |
getFolder(java.lang.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.
|
java.lang.String |
getProxyAuthUser()
Get the user name to be used with the PROXYAUTH command.
|
Quota[] |
getQuota(java.lang.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(java.lang.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(java.lang.String capability)
Return true if the specified capability string is in the list
of capabilities the server announced.
|
java.util.Map<java.lang.String,java.lang.String> |
id(java.util.Map<java.lang.String,java.lang.String> clientParams)
Send the IMAP ID command (if supported by the server) and return
the result from the server.
|
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.
|
boolean |
isSSL()
Does this IMAPStore use SSL when connecting to the server?
|
void |
setPassword(java.lang.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 |
setProxyAuthUser(java.lang.String user)
Set the user name to be used with the PROXYAUTH command.
|
void |
setQuota(Quota quota)
Set the quotas for the quota root specified in the quota argument.
|
void |
setUsername(java.lang.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).
|
addFolderListener, addStoreListener, removeFolderListener, removeStoreListeneraddConnectionListener, connect, connect, connect, connect, getURLName, removeConnectionListener, toStringpublic static final int RESPONSE
public static final java.lang.String ID_NAME
public static final java.lang.String ID_VERSION
public static final java.lang.String ID_OS
public static final java.lang.String ID_OS_VERSION
public static final java.lang.String ID_VENDOR
public static final java.lang.String ID_SUPPORT_URL
public static final java.lang.String ID_ADDRESS
public static final java.lang.String ID_DATE
public static final java.lang.String ID_COMMAND
public static final java.lang.String ID_ARGUMENTS
public static final java.lang.String ID_ENVIRONMENT
public boolean isSSL()
public void setUsername(java.lang.String user)
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.
user - the user name for the storepublic void setPassword(java.lang.String password)
Most applications will never need to use this method.
password - the password for the storepublic boolean hasCapability(java.lang.String capability)
throws MessagingException
capability - the capability stringMessagingException - for failurespublic void setProxyAuthUser(java.lang.String user)
mail.imap.proxyauth.user property when this
Store is created.user - the user name to setpublic java.lang.String getProxyAuthUser()
public boolean isConnected()
isConnected in class Servicepublic void close()
throws MessagingException
close in interface java.lang.AutoCloseableclose in class ServiceMessagingException - for errors while closingConnectionEventpublic Folder getDefaultFolder() throws MessagingException
getDefaultFolder in class StoreMessagingException - for other failurespublic Folder getFolder(java.lang.String name) throws MessagingException
getFolder in class Storename - 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.MessagingException - for other failuresFolder.exists(),
Folder.create(int)public Folder getFolder(URLName url) throws MessagingException
getFolder in class Storeurl - URLName that denotes a folderMessagingException - for other failuresURLNamepublic Folder[] getPersonalNamespaces() throws MessagingException
getPersonalNamespaces in class StoreMessagingException - for other failurespublic Folder[] getUserNamespaces(java.lang.String user) throws MessagingException
getUserNamespaces in class Storeuser - the user nameMessagingException - for other failurespublic Folder[] getSharedNamespaces() throws MessagingException
getSharedNamespaces in class StoreMessagingException - for other failurespublic Quota[] getQuota(java.lang.String root) throws MessagingException
getQuota in interface QuotaAwareStoreroot - the name of the quota rootMessagingException - if the server doesn't support the
QUOTA extensionpublic void setQuota(Quota quota) throws MessagingException
getQuota method, but it need not be.setQuota in interface QuotaAwareStorequota - the quota to setMessagingException - if the server doesn't support the
QUOTA extensionpublic void handleResponse(Response r)
handleResponse in interface ResponseHandlerpublic void idle()
throws MessagingException
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 extensionjava.lang.IllegalStateException - if the store isn't connectedpublic java.util.Map<java.lang.String,java.lang.String> id(java.util.Map<java.lang.String,java.lang.String> clientParams)
throws MessagingException
clientParams - a Map of keys and values identifying the clientMessagingException - if the server doesn't support the
ID extensionCopyright © 2010 - 2023 Adobe. All Rights Reserved