public class IMAPProtocol extends Protocol
notifyResponseHandlers(r)
.Constructor and Description |
---|
IMAPProtocol(java.io.InputStream in,
java.io.PrintStream out,
java.util.Properties props,
boolean debug)
Constructor for debugging.
|
IMAPProtocol(java.lang.String name,
java.lang.String host,
int port,
java.util.Properties props,
boolean isSSL,
MailLogger logger)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
append(java.lang.String mbox,
Flags f,
java.util.Date d,
Literal data)
APPEND Command.
|
AppendUID |
appenduid(java.lang.String mbox,
Flags f,
java.util.Date d,
Literal data)
APPEND Command, return uid from APPENDUID response code.
|
AppendUID |
appenduid(java.lang.String mbox,
Flags f,
java.util.Date d,
Literal data,
boolean uid) |
void |
authlogin(java.lang.String u,
java.lang.String p)
The AUTHENTICATE command with AUTH=LOGIN authenticate scheme
|
void |
authntlm(java.lang.String authzid,
java.lang.String u,
java.lang.String p)
The AUTHENTICATE command with AUTH=NTLM authentication scheme.
|
void |
authoauth2(java.lang.String u,
java.lang.String p)
The AUTHENTICATE command with AUTH=XOAUTH2 authentication scheme.
|
void |
authplain(java.lang.String authzid,
java.lang.String u,
java.lang.String p)
The AUTHENTICATE command with AUTH=PLAIN authentication scheme.
|
void |
capability()
CAPABILITY command.
|
void |
check()
CHECK Command.
|
void |
close()
CLOSE Command.
|
void |
compress()
COMPRESS Command.
|
void |
copy(int start,
int end,
java.lang.String mbox)
COPY command.
|
void |
copy(MessageSet[] msgsets,
java.lang.String mbox)
COPY command.
|
CopyUID |
copyuid(int start,
int end,
java.lang.String mbox)
COPY command, return uid from COPYUID response code.
|
CopyUID |
copyuid(MessageSet[] msgsets,
java.lang.String mbox)
COPY command, return uid from COPYUID response code.
|
void |
create(java.lang.String mbox)
CREATE Command.
|
void |
delete(java.lang.String mbox)
DELETE Command.
|
void |
deleteACL(java.lang.String mbox,
java.lang.String user)
DELETEACL Command.
|
void |
disconnect()
Close socket connection.
|
void |
enable(java.lang.String cap)
ENABLE Command.
|
MailboxInfo |
examine(java.lang.String mbox)
EXAMINE Command.
|
MailboxInfo |
examine(java.lang.String mbox,
ResyncData rd)
EXAMINE Command with QRESYNC data.
|
void |
expunge()
EXPUNGE Command.
|
Response[] |
fetch(int start,
int end,
java.lang.String what) |
Response[] |
fetch(int msg,
java.lang.String what) |
Response[] |
fetch(MessageSet[] msgsets,
java.lang.String what) |
BODY |
fetchBody(int msgno,
java.lang.String section)
Fetch given BODY section.
|
BODY |
fetchBody(int msgno,
java.lang.String section,
int start,
int size)
Partial FETCH of given BODY section.
|
BODY |
fetchBody(int msgno,
java.lang.String section,
int start,
int size,
ByteArray ba)
Partial FETCH of given BODY section.
|
BODYSTRUCTURE |
fetchBodyStructure(int msgno)
Fetch the BODYSTRUCTURE of the specified message.
|
Flags |
fetchFlags(int msgno)
Fetch the FLAGS for the given message.
|
MODSEQ |
fetchMODSEQ(int msgno)
Fetch the IMAP MODSEQ for the given message.
|
RFC822DATA |
fetchRFC822(int msgno,
java.lang.String what)
Fetch the specified RFC822 Data item.
|
void |
fetchSequenceNumber(long uid)
Get the sequence number for the given UID.
|
void |
fetchSequenceNumbers(long[] uids)
Get the sequence numbers for UIDs specified in the array.
|
long[] |
fetchSequenceNumbers(long start,
long end)
Get the sequence numbers for UIDs ranging from start till end.
|
UID |
fetchUID(int msgno)
Fetch the IMAP UID for the given message.
|
ACL[] |
getACL(java.lang.String mbox)
GETACL Command.
|
java.util.Map<java.lang.String,java.lang.String> |
getCapabilities()
Return the map of capabilities returned by the server.
|
FetchItem[] |
getFetchItems()
Return an array of FetchItem objects describing the
FETCH items supported by this protocol.
|
java.lang.String |
getProxyAuthUser()
Get the user name used with the PROXYAUTH command.
|
Quota[] |
getQuota(java.lang.String root)
GETQUOTA Command.
|
Quota[] |
getQuotaRoot(java.lang.String mbox)
GETQUOTAROOT Command.
|
void |
handleCapabilityResponse(Response[] r)
Handle any untagged CAPABILITY response in the Response array.
|
boolean |
hasCapability(java.lang.String c)
Check whether the given capability is supported by
this server.
|
java.util.Map<java.lang.String,java.lang.String> |
id(java.util.Map<java.lang.String,java.lang.String> clientParams)
ID Command.
|
void |
id(java.lang.String guid)
Deprecated.
As of JavaMail 1.5.1, replaced by
id(Map<String,String>) |
void |
idleAbort()
Abort an IDLE command.
|
void |
idleStart()
IDLE Command.
|
boolean |
isAuthenticated()
Returns
true if the connection has been authenticated,
either due to a successful login, or due to a PREAUTH greeting response. |
boolean |
isEnabled(java.lang.String cap)
Is the capability/extension enabled?
|
boolean |
isREV1()
Returns
true if this is an IMAP4rev1 server |
ListInfo[] |
list(java.lang.String ref,
java.lang.String pattern)
LIST Command.
|
Rights[] |
listRights(java.lang.String mbox,
java.lang.String user)
LISTRIGHTS Command.
|
void |
login(java.lang.String u,
java.lang.String p)
LOGIN Command.
|
void |
logout()
LOGOUT Command.
|
ListInfo[] |
lsub(java.lang.String ref,
java.lang.String pattern)
LSUB Command.
|
void |
move(int start,
int end,
java.lang.String mbox)
MOVE command.
|
void |
move(MessageSet[] msgsets,
java.lang.String mbox)
MOVE command.
|
CopyUID |
moveuid(int start,
int end,
java.lang.String mbox)
MOVE Command, return uid from COPYUID response code.
|
CopyUID |
moveuid(MessageSet[] msgsets,
java.lang.String mbox)
MOVE Command, return uid from COPYUID response code.
|
Rights |
myRights(java.lang.String mbox)
MYRIGHTS Command.
|
Namespaces |
namespace()
NAMESPACE Command.
|
void |
noop()
The NOOP command.
|
BODY |
peekBody(int msgno,
java.lang.String section)
Fetch given BODY section, without marking the message
as SEEN.
|
BODY |
peekBody(int msgno,
java.lang.String section,
int start,
int size)
Partial FETCH of given BODY section, without setting SEEN flag.
|
BODY |
peekBody(int msgno,
java.lang.String section,
int start,
int size,
ByteArray ba)
Partial FETCH of given BODY section, without setting SEEN flag.
|
boolean |
processIdleResponse(Response r)
Process a response returned by readIdleResponse().
|
void |
proxyauth(java.lang.String u)
PROXYAUTH Command.
|
Response |
readIdleResponse()
While an IDLE command is in progress, read a response
sent from the server.
|
Response |
readResponse()
Read a response from the server.
|
void |
rename(java.lang.String o,
java.lang.String n)
RENAME Command.
|
void |
sasllogin(java.lang.String[] allowed,
java.lang.String realm,
java.lang.String authzid,
java.lang.String u,
java.lang.String p)
SASL-based login.
|
int[] |
search(MessageSet[] msgsets,
SearchTerm term)
Issue the given search criterion on the specified message sets.
|
int[] |
search(SearchTerm term)
Issue the given search criterion on all messages in this folder.
|
MailboxInfo |
select(java.lang.String mbox)
SELECT Command.
|
MailboxInfo |
select(java.lang.String mbox,
ResyncData rd)
SELECT Command with QRESYNC data.
|
void |
setACL(java.lang.String mbox,
char modifier,
ACL acl)
SETACL Command.
|
void |
setQuota(Quota quota)
SETQUOTA Command.
|
int[] |
sort(SortTerm[] term,
SearchTerm sterm)
Sort messages in the folder according to the specified sort criteria.
|
void |
startTLS()
STARTTLS Command.
|
Status |
status(java.lang.String mbox,
java.lang.String[] items)
STATUS Command.
|
void |
storeFlags(int msg,
Flags flags,
boolean set)
Set the specified flags on this message.
|
void |
storeFlags(int start,
int end,
Flags flags,
boolean set) |
void |
storeFlags(MessageSet[] msgsets,
Flags flags,
boolean set) |
void |
subscribe(java.lang.String mbox)
SUBSCRIBE Command.
|
boolean |
supportsUtf8()
Does the server support UTF-8?
|
void |
uidexpunge(UIDSet[] set)
UID EXPUNGE Command.
|
int[] |
uidfetchChangedSince(long start,
long end,
long modseq)
Get the sequence numbers for messages changed since the given
modseq and with UIDs ranging from start till end.
|
void |
unauthenticate()
UNAUTHENTICATE Command.
|
void |
unselect()
UNSELECT Command.
|
void |
unsubscribe(java.lang.String mbox)
UNSUBSCRIBE Command.
|
addResponseHandler, command, getChannel, getInetAddress, getTimestamp, handleResult, hasResponse, isSSL, notifyResponseHandlers, removeResponseHandler, simpleCommand, startCompression, startTLS, writeCommand
public IMAPProtocol(java.lang.String name, java.lang.String host, int port, java.util.Properties props, boolean isSSL, MailLogger logger) throws java.io.IOException, ProtocolException
name
- the protocol namehost
- host to connect toport
- port number to connect toprops
- Properties object used by this protocolisSSL
- true if SSL should be usedlogger
- the MailLogger to use for debug outputjava.io.IOException
- for I/O errorsProtocolException
- for protocol failurespublic IMAPProtocol(java.io.InputStream in, java.io.PrintStream out, java.util.Properties props, boolean debug) throws java.io.IOException
in
- the InputStream from which to readout
- the PrintStream to which to writeprops
- Properties object used by this protocoldebug
- true to enable debugging outputjava.io.IOException
- for I/O errorspublic FetchItem[] getFetchItems()
public void capability() throws ProtocolException
ProtocolException
- for protocol failurespublic void handleCapabilityResponse(Response[] r)
r
- the responsespublic boolean isAuthenticated()
true
if the connection has been authenticated,
either due to a successful login, or due to a PREAUTH greeting response.public boolean isREV1()
true
if this is an IMAP4rev1 serverpublic Response readResponse() throws java.io.IOException, ProtocolException
readResponse
in class Protocol
java.io.IOException
- for I/O errorsProtocolException
- for protocol failurespublic boolean hasCapability(java.lang.String c)
true
if so, otherwise
returns false.c
- the capability namepublic java.util.Map<java.lang.String,java.lang.String> getCapabilities()
public boolean supportsUtf8()
supportsUtf8
in class Protocol
public void disconnect()
public void noop() throws ProtocolException
ProtocolException
- for protocol failurespublic void logout() throws ProtocolException
ProtocolException
- for protocol failurespublic void login(java.lang.String u, java.lang.String p) throws ProtocolException
u
- the usernamep
- the passwordProtocolException
- as thrown by Protocol.handleResult(com.sun.mail.iap.Response)
.public void authlogin(java.lang.String u, java.lang.String p) throws ProtocolException
u
- the usernamep
- the passwordProtocolException
- as thrown by Protocol.handleResult(com.sun.mail.iap.Response)
.public void authplain(java.lang.String authzid, java.lang.String u, java.lang.String p) throws ProtocolException
authlogin(java.lang.String, java.lang.String)
method.authzid
- the authorization idu
- the usernamep
- the passwordProtocolException
- as thrown by Protocol.handleResult(com.sun.mail.iap.Response)
.public void authntlm(java.lang.String authzid, java.lang.String u, java.lang.String p) throws ProtocolException
authlogin(java.lang.String, java.lang.String)
method.authzid
- the authorization idu
- the usernamep
- the passwordProtocolException
- as thrown by Protocol.handleResult(com.sun.mail.iap.Response)
.public void authoauth2(java.lang.String u, java.lang.String p) throws ProtocolException
authlogin(java.lang.String, java.lang.String)
method.u
- the usernamep
- the passwordProtocolException
- as thrown by Protocol.handleResult(com.sun.mail.iap.Response)
.public void sasllogin(java.lang.String[] allowed, java.lang.String realm, java.lang.String authzid, java.lang.String u, java.lang.String p) throws ProtocolException
allowed
- the SASL mechanisms we're allowed to userealm
- the SASL realmauthzid
- the authorization idu
- the usernamep
- the passwordProtocolException
- for protocol failurespublic void proxyauth(java.lang.String u) throws ProtocolException
u
- the PROXYAUTH user nameProtocolException
- for protocol failurespublic java.lang.String getProxyAuthUser()
public void unauthenticate() throws ProtocolException
ProtocolException
- for protocol failures@Deprecated public void id(java.lang.String guid) throws ProtocolException
id(Map<String,String>)
guid
- the GUIDProtocolException
- for protocol failurespublic void startTLS() throws ProtocolException
ProtocolException
- for protocol failurespublic void compress() throws ProtocolException
ProtocolException
- for protocol failurespublic MailboxInfo select(java.lang.String mbox) throws ProtocolException
mbox
- the mailbox nameProtocolException
- for protocol failurespublic MailboxInfo select(java.lang.String mbox, ResyncData rd) throws ProtocolException
mbox
- the mailbox namerd
- the ResyncDataProtocolException
- for protocol failurespublic MailboxInfo examine(java.lang.String mbox) throws ProtocolException
mbox
- the mailbox nameProtocolException
- for protocol failurespublic MailboxInfo examine(java.lang.String mbox, ResyncData rd) throws ProtocolException
mbox
- the mailbox namerd
- the ResyncDataProtocolException
- for protocol failurespublic void enable(java.lang.String cap) throws ProtocolException
cap
- the name of the capability to enableProtocolException
- for protocol failurespublic boolean isEnabled(java.lang.String cap)
cap
- the capability namepublic void unselect() throws ProtocolException
ProtocolException
- for protocol failurespublic Status status(java.lang.String mbox, java.lang.String[] items) throws ProtocolException
mbox
- the mailboxitems
- the STATUS items to requestProtocolException
- for protocol failurespublic void create(java.lang.String mbox) throws ProtocolException
mbox
- the mailbox to createProtocolException
- for protocol failurespublic void delete(java.lang.String mbox) throws ProtocolException
mbox
- the mailbox to deleteProtocolException
- for protocol failurespublic void rename(java.lang.String o, java.lang.String n) throws ProtocolException
o
- old mailbox namen
- new mailbox nameProtocolException
- for protocol failurespublic void subscribe(java.lang.String mbox) throws ProtocolException
mbox
- the mailboxProtocolException
- for protocol failurespublic void unsubscribe(java.lang.String mbox) throws ProtocolException
mbox
- the mailboxProtocolException
- for protocol failurespublic ListInfo[] list(java.lang.String ref, java.lang.String pattern) throws ProtocolException
ref
- reference stringpattern
- pattern to listProtocolException
- for protocol failurespublic ListInfo[] lsub(java.lang.String ref, java.lang.String pattern) throws ProtocolException
ref
- reference stringpattern
- pattern to listProtocolException
- for protocol failurespublic void append(java.lang.String mbox, Flags f, java.util.Date d, Literal data) throws ProtocolException
mbox
- the mailboxf
- the message Flagsd
- the message datedata
- the message dataProtocolException
- for protocol failurespublic AppendUID appenduid(java.lang.String mbox, Flags f, java.util.Date d, Literal data) throws ProtocolException
mbox
- the mailboxf
- the message Flagsd
- the message datedata
- the message dataProtocolException
- for protocol failurespublic AppendUID appenduid(java.lang.String mbox, Flags f, java.util.Date d, Literal data, boolean uid) throws ProtocolException
ProtocolException
public void check() throws ProtocolException
ProtocolException
- for protocol failurespublic void close() throws ProtocolException
ProtocolException
- for protocol failurespublic void expunge() throws ProtocolException
ProtocolException
- for protocol failurespublic void uidexpunge(UIDSet[] set) throws ProtocolException
set
- UIDs to expungeProtocolException
- for protocol failurespublic BODYSTRUCTURE fetchBodyStructure(int msgno) throws ProtocolException
msgno
- the message numberProtocolException
- for protocol failurespublic BODY peekBody(int msgno, java.lang.String section) throws ProtocolException
msgno
- the message numbersection
- the body sectionProtocolException
- for protocol failurespublic BODY fetchBody(int msgno, java.lang.String section) throws ProtocolException
msgno
- the message numbersection
- the body sectionProtocolException
- for protocol failurespublic BODY peekBody(int msgno, java.lang.String section, int start, int size) throws ProtocolException
msgno
- the message numbersection
- the body sectionstart
- starting byte countsize
- number of bytes to fetchProtocolException
- for protocol failurespublic BODY fetchBody(int msgno, java.lang.String section, int start, int size) throws ProtocolException
msgno
- the message numbersection
- the body sectionstart
- starting byte countsize
- number of bytes to fetchProtocolException
- for protocol failurespublic BODY peekBody(int msgno, java.lang.String section, int start, int size, ByteArray ba) throws ProtocolException
msgno
- the message numbersection
- the body sectionstart
- starting byte countsize
- number of bytes to fetchba
- the buffer into which to read the responseProtocolException
- for protocol failurespublic BODY fetchBody(int msgno, java.lang.String section, int start, int size, ByteArray ba) throws ProtocolException
msgno
- the message numbersection
- the body sectionstart
- starting byte countsize
- number of bytes to fetchba
- the buffer into which to read the responseProtocolException
- for protocol failurespublic RFC822DATA fetchRFC822(int msgno, java.lang.String what) throws ProtocolException
null
to fetch the whole message.msgno
- the message numberwhat
- the item to fetchProtocolException
- for protocol failurespublic Flags fetchFlags(int msgno) throws ProtocolException
msgno
- the message numberProtocolException
- for protocol failurespublic UID fetchUID(int msgno) throws ProtocolException
msgno
- the message numberProtocolException
- for protocol failurespublic MODSEQ fetchMODSEQ(int msgno) throws ProtocolException
msgno
- the message numberProtocolException
- for protocol failurespublic void fetchSequenceNumber(long uid) throws ProtocolException
uid
- the UIDProtocolException
- for protocol failurespublic long[] fetchSequenceNumbers(long start, long end) throws ProtocolException
start
- first UIDend
- last UIDProtocolException
- for protocol failurespublic void fetchSequenceNumbers(long[] uids) throws ProtocolException
uids
- the UIDsProtocolException
- for protocol failurespublic int[] uidfetchChangedSince(long start, long end, long modseq) throws ProtocolException
start
- first UIDend
- last UIDmodseq
- the MODSEQProtocolException
- for protocol failurespublic Response[] fetch(MessageSet[] msgsets, java.lang.String what) throws ProtocolException
ProtocolException
public Response[] fetch(int start, int end, java.lang.String what) throws ProtocolException
ProtocolException
public Response[] fetch(int msg, java.lang.String what) throws ProtocolException
ProtocolException
public void copy(MessageSet[] msgsets, java.lang.String mbox) throws ProtocolException
msgsets
- the messages to copymbox
- the mailbox to copy them toProtocolException
- for protocol failurespublic void copy(int start, int end, java.lang.String mbox) throws ProtocolException
start
- start message numberend
- end message numbermbox
- the mailbox to copy them toProtocolException
- for protocol failurespublic CopyUID copyuid(MessageSet[] msgsets, java.lang.String mbox) throws ProtocolException
msgsets
- the messages to copymbox
- the mailbox to copy them toProtocolException
- for protocol failurespublic CopyUID copyuid(int start, int end, java.lang.String mbox) throws ProtocolException
start
- start message numberend
- end message numbermbox
- the mailbox to copy them toProtocolException
- for protocol failurespublic void move(MessageSet[] msgsets, java.lang.String mbox) throws ProtocolException
msgsets
- the messages to movembox
- the mailbox to move them toProtocolException
- for protocol failurespublic void move(int start, int end, java.lang.String mbox) throws ProtocolException
start
- start message numberend
- end message numbermbox
- the mailbox to move them toProtocolException
- for protocol failurespublic CopyUID moveuid(MessageSet[] msgsets, java.lang.String mbox) throws ProtocolException
msgsets
- the messages to movembox
- the mailbox to move them toProtocolException
- for protocol failurespublic CopyUID moveuid(int start, int end, java.lang.String mbox) throws ProtocolException
start
- start message numberend
- end message numbermbox
- the mailbox to move them toProtocolException
- for protocol failurespublic void storeFlags(MessageSet[] msgsets, Flags flags, boolean set) throws ProtocolException
ProtocolException
public void storeFlags(int start, int end, Flags flags, boolean set) throws ProtocolException
ProtocolException
public void storeFlags(int msg, Flags flags, boolean set) throws ProtocolException
msg
- the message numberflags
- the flagsset
- true to set, false to clearProtocolException
- for protocol failurespublic int[] search(MessageSet[] msgsets, SearchTerm term) throws ProtocolException, SearchException
msgsets
- array of MessageSetsterm
- SearchTermProtocolException
- for protocol failuresSearchException
- for search failurespublic int[] search(SearchTerm term) throws ProtocolException, SearchException
term
- SearchTermProtocolException
- for protocol failuresSearchException
- for search failurespublic int[] sort(SortTerm[] term, SearchTerm sterm) throws ProtocolException, SearchException
term
- sort criteriasterm
- SearchTermProtocolException
- for protocol failuresSearchException
- for search failurespublic Namespaces namespace() throws ProtocolException
ProtocolException
- for protocol failurespublic Quota[] getQuotaRoot(java.lang.String mbox) throws ProtocolException
mbox
- the mailboxProtocolException
- for protocol failurespublic Quota[] getQuota(java.lang.String root) throws ProtocolException
root
- the quotarootProtocolException
- for protocol failurespublic void setQuota(Quota quota) throws ProtocolException
quota
- the quota to setProtocolException
- for protocol failurespublic void setACL(java.lang.String mbox, char modifier, ACL acl) throws ProtocolException
mbox
- the mailboxmodifier
- the ACL modifieracl
- the ACLProtocolException
- for protocol failurespublic void deleteACL(java.lang.String mbox, java.lang.String user) throws ProtocolException
mbox
- the mailboxuser
- the userProtocolException
- for protocol failurespublic ACL[] getACL(java.lang.String mbox) throws ProtocolException
mbox
- the mailboxProtocolException
- for protocol failurespublic Rights[] listRights(java.lang.String mbox, java.lang.String user) throws ProtocolException
mbox
- the mailboxuser
- the user rights to returnProtocolException
- for protocol failurespublic Rights myRights(java.lang.String mbox) throws ProtocolException
mbox
- the mailboxProtocolException
- for protocol failurespublic void idleStart() throws ProtocolException
If the server supports the IDLE command extension, the IDLE command is issued and this method blocks until a response has been received. Once the first response has been received, the IDLE command is terminated and all responses are collected and handled and this method returns.
Note that while this method is blocked waiting for a response, no other threads may issue any commands to the server that would use this same connection.
ProtocolException
- for protocol failurespublic Response readIdleResponse()
public boolean processIdleResponse(Response r) throws ProtocolException
r
- the responseProtocolException
- for protocol failurespublic void idleAbort()
public java.util.Map<java.lang.String,java.lang.String> id(java.util.Map<java.lang.String,java.lang.String> clientParams) throws ProtocolException
clientParams
- map of names and valuesProtocolException
- for protocol failuresCopyright © 2010 - 2020 Adobe. All Rights Reserved