public class IMAPProtocol extends Protocol
notifyResponseHandlers(r).| Modifier and Type | Field and Description |
|---|---|
protected String[] |
searchCharsets |
| Constructor and Description |
|---|
IMAPProtocol(String name,
String host,
int port,
boolean debug,
PrintStream out,
Properties props,
boolean isSSL)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
append(String mbox,
Flags f,
Date d,
Literal data)
APPEND Command.
|
AppendUID |
appenduid(String mbox,
Flags f,
Date d,
Literal data)
APPEND Command, return uid from APPENDUID response code.
|
AppendUID |
appenduid(String mbox,
Flags f,
Date d,
Literal data,
boolean uid) |
void |
authlogin(String u,
String p)
The AUTHENTICATE command with AUTH=LOGIN authenticate scheme
|
void |
authntlm(String authzid,
String u,
String p)
The AUTHENTICATE command with AUTH=NTLM authentication scheme.
|
void |
authplain(String authzid,
String u,
String p)
The AUTHENTICATE command with AUTH=PLAIN authentication scheme.
|
void |
capability()
CAPABILITY command.
|
void |
check()
CHECK Command.
|
void |
close()
CLOSE Command.
|
void |
copy(int start,
int end,
String mbox) |
void |
copy(MessageSet[] msgsets,
String mbox)
COPY command.
|
void |
create(String mbox)
CREATE Command.
|
void |
delete(String mbox)
DELETE Command.
|
void |
deleteACL(String mbox,
String user)
DELETEACL Command.
|
void |
disconnect()
Close socket connection.
|
MailboxInfo |
examine(String mbox)
EXAMINE Command.
|
void |
expunge()
EXPUNGE Command.
|
Response[] |
fetch(int start,
int end,
String what) |
Response[] |
fetch(int msg,
String what) |
Response[] |
fetch(MessageSet[] msgsets,
String what) |
BODY |
fetchBody(int msgno,
String section)
Fetch given BODY section.
|
protected BODY |
fetchBody(int msgno,
String section,
boolean peek) |
BODY |
fetchBody(int msgno,
String section,
int start,
int size)
Partial FETCH of given BODY section.
|
protected BODY |
fetchBody(int msgno,
String section,
int start,
int size,
boolean peek,
ByteArray ba) |
BODY |
fetchBody(int msgno,
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.
|
RFC822DATA |
fetchRFC822(int msgno,
String what)
Fetch the specified RFC822 Data item.
|
UID |
fetchSequenceNumber(long uid)
Get the sequence number for the given UID.
|
UID[] |
fetchSequenceNumbers(long[] uids)
Get the sequence numbers for UIDs ranging from start till end.
|
UID[] |
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(String mbox)
GETACL Command.
|
Map |
getCapabilities()
Return the map of capabilities returned by the server.
|
Quota[] |
getQuota(String root)
GETQUOTA Command.
|
Quota[] |
getQuotaRoot(String mbox)
GETQUOTAROOT Command.
|
protected ByteArray |
getResponseBuffer()
Return a buffer to read a response into.
|
boolean |
hasCapability(String c)
Check whether the given capability is supported by
this server.
|
void |
id(String guid)
ID Command, for Yahoo! Mail IMAP server.
|
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 |
isREV1()
Returns
true if this is a IMAP4rev1 server |
ListInfo[] |
list(String ref,
String pattern)
LIST Command.
|
Rights[] |
listRights(String mbox,
String user)
LISTRIGHTS Command.
|
void |
login(String u,
String p)
LOGIN Command.
|
void |
logout()
LOGOUT Command.
|
ListInfo[] |
lsub(String ref,
String pattern)
LSUB Command.
|
Rights |
myRights(String mbox)
MYRIGHTS Command.
|
Namespaces |
namespace()
NAMESPACE Command.
|
void |
noop()
The NOOP command.
|
protected void |
parseCapabilities(Response r)
Parse the capabilities from a CAPABILITY response or from
a CAPABILITY response code attached to (e.g.) an OK response.
|
BODY |
peekBody(int msgno,
String section)
Fetch given BODY section, without marking the message
as SEEN.
|
BODY |
peekBody(int msgno,
String section,
int start,
int size)
Partial FETCH of given BODY section, without setting SEEN flag.
|
BODY |
peekBody(int msgno,
String section,
int start,
int size,
ByteArray ba)
Partial FETCH of given BODY section, without setting SEEN flag.
|
protected void |
processGreeting(Response r)
Check the greeting when first connecting; look for PREAUTH response.
|
boolean |
processIdleResponse(Response r)
Process a response returned by readIdleResponse().
|
void |
proxyauth(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(String o,
String n)
RENAME Command.
|
void |
sasllogin(String[] allowed,
String realm,
String authzid,
String u,
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(String mbox)
SELECT Command.
|
void |
setACL(String mbox,
char modifier,
ACL acl)
SETACL Command.
|
protected void |
setCapabilities(Response r)
If the response contains a CAPABILITY response code, extract
it and save the capabilities.
|
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(String mbox,
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(String mbox)
SUBSCRIBE Command.
|
protected boolean |
supportsNonSyncLiterals()
Returns whether this Protocol supports non-synchronizing literals.
|
void |
uidexpunge(UIDSet[] set)
UID EXPUNGE Command.
|
void |
unselect()
UNSELECT Command.
|
void |
unsubscribe(String mbox)
UNSUBSCRIBE Command.
|
addResponseHandler, command, finalize, getInputStream, getLocalHost, getOutputStream, getTimestamp, handleResult, notifyResponseHandlers, removeResponseHandler, resumeTracing, simpleCommand, startTLS, suspendTracing, writeCommandprotected String[] searchCharsets
public IMAPProtocol(String name, String host, int port, boolean debug, PrintStream out, Properties props, boolean isSSL) throws IOException, ProtocolException
host - host to connect toport - portnumber to connect todebug - debug modeprops - Properties object used by this protocolIOExceptionProtocolExceptionpublic void capability()
throws ProtocolException
ProtocolExceptionprotected void setCapabilities(Response r)
protected void parseCapabilities(Response r)
protected void processGreeting(Response r) throws ProtocolException
processGreeting in class ProtocolProtocolExceptionpublic 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 a IMAP4rev1 serverprotected boolean supportsNonSyncLiterals()
supportsNonSyncLiterals in class Protocolpublic Response readResponse() throws IOException, ProtocolException
readResponse in class ProtocolIOExceptionProtocolExceptionpublic boolean hasCapability(String c)
true if so, otherwise
returns false.public Map getCapabilities()
public void disconnect()
disconnect in class Protocolpublic void noop()
throws ProtocolException
ProtocolExceptionpublic void logout()
throws ProtocolException
ProtocolExceptionpublic void login(String u, String p) throws ProtocolException
ProtocolExceptionpublic void authlogin(String u, String p) throws ProtocolException
ProtocolExceptionpublic void authplain(String authzid, String u, 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(String authzid, String u, 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 sasllogin(String[] allowed, String realm, String authzid, String u, String p) throws ProtocolException
ProtocolExceptionpublic void proxyauth(String u) throws ProtocolException
ProtocolExceptionpublic void id(String guid) throws ProtocolException
ProtocolExceptionpublic void startTLS()
throws ProtocolException
ProtocolExceptionpublic MailboxInfo select(String mbox) throws ProtocolException
ProtocolExceptionpublic MailboxInfo examine(String mbox) throws ProtocolException
ProtocolExceptionpublic void unselect()
throws ProtocolException
ProtocolExceptionpublic Status status(String mbox, String[] items) throws ProtocolException
ProtocolExceptionpublic void create(String mbox) throws ProtocolException
ProtocolExceptionpublic void delete(String mbox) throws ProtocolException
ProtocolExceptionpublic void rename(String o, String n) throws ProtocolException
ProtocolExceptionpublic void subscribe(String mbox) throws ProtocolException
ProtocolExceptionpublic void unsubscribe(String mbox) throws ProtocolException
ProtocolExceptionpublic ListInfo[] list(String ref, String pattern) throws ProtocolException
ProtocolExceptionpublic ListInfo[] lsub(String ref, String pattern) throws ProtocolException
ProtocolExceptionpublic void append(String mbox, Flags f, Date d, Literal data) throws ProtocolException
ProtocolExceptionpublic AppendUID appenduid(String mbox, Flags f, Date d, Literal data) throws ProtocolException
ProtocolExceptionpublic AppendUID appenduid(String mbox, Flags f, Date d, Literal data, boolean uid) throws ProtocolException
ProtocolExceptionpublic void check()
throws ProtocolException
ProtocolExceptionpublic void close()
throws ProtocolException
ProtocolExceptionpublic void expunge()
throws ProtocolException
ProtocolExceptionpublic void uidexpunge(UIDSet[] set) throws ProtocolException
ProtocolExceptionpublic BODYSTRUCTURE fetchBodyStructure(int msgno) throws ProtocolException
ProtocolExceptionpublic BODY peekBody(int msgno, String section) throws ProtocolException
ProtocolExceptionpublic BODY fetchBody(int msgno, String section) throws ProtocolException
ProtocolExceptionprotected BODY fetchBody(int msgno, String section, boolean peek) throws ProtocolException
ProtocolExceptionpublic BODY peekBody(int msgno, String section, int start, int size) throws ProtocolException
ProtocolExceptionpublic BODY fetchBody(int msgno, String section, int start, int size) throws ProtocolException
ProtocolExceptionpublic BODY peekBody(int msgno, String section, int start, int size, ByteArray ba) throws ProtocolException
ProtocolExceptionpublic BODY fetchBody(int msgno, String section, int start, int size, ByteArray ba) throws ProtocolException
ProtocolExceptionprotected BODY fetchBody(int msgno, String section, int start, int size, boolean peek, ByteArray ba) throws ProtocolException
ProtocolExceptionprotected ByteArray getResponseBuffer()
getResponseBuffer in class Protocolpublic RFC822DATA fetchRFC822(int msgno, String what) throws ProtocolException
null
to fetch the whole message.ProtocolExceptionpublic Flags fetchFlags(int msgno) throws ProtocolException
ProtocolExceptionpublic UID fetchUID(int msgno) throws ProtocolException
ProtocolExceptionpublic UID fetchSequenceNumber(long uid) throws ProtocolException
null is returned.ProtocolExceptionpublic UID[] fetchSequenceNumbers(long start, long end) throws ProtocolException
ProtocolExceptionpublic UID[] fetchSequenceNumbers(long[] uids) throws ProtocolException
ProtocolExceptionpublic Response[] fetch(MessageSet[] msgsets, String what) throws ProtocolException
ProtocolExceptionpublic Response[] fetch(int start, int end, String what) throws ProtocolException
ProtocolExceptionpublic Response[] fetch(int msg, String what) throws ProtocolException
ProtocolExceptionpublic void copy(MessageSet[] msgsets, String mbox) throws ProtocolException
ProtocolExceptionpublic void copy(int start,
int end,
String mbox)
throws ProtocolException
ProtocolExceptionpublic void storeFlags(MessageSet[] msgsets, Flags flags, boolean set) throws ProtocolException
ProtocolExceptionpublic void storeFlags(int start,
int end,
Flags flags,
boolean set)
throws ProtocolException
ProtocolExceptionpublic void storeFlags(int msg,
Flags flags,
boolean set)
throws ProtocolException
ProtocolExceptionpublic int[] search(MessageSet[] msgsets, SearchTerm term) throws ProtocolException, SearchException
msgsets - array of MessageSetsterm - SearchTermProtocolExceptionSearchExceptionpublic int[] search(SearchTerm term) throws ProtocolException, SearchException
term - SearchTermProtocolExceptionSearchExceptionpublic int[] sort(SortTerm[] term, SearchTerm sterm) throws ProtocolException, SearchException
term - sort criteriasterm - SearchTermProtocolExceptionSearchExceptionpublic Namespaces namespace() throws ProtocolException
ProtocolExceptionpublic Quota[] getQuotaRoot(String mbox) throws ProtocolException
ProtocolExceptionpublic Quota[] getQuota(String root) throws ProtocolException
ProtocolExceptionpublic void setQuota(Quota quota) throws ProtocolException
ProtocolExceptionpublic void setACL(String mbox, char modifier, ACL acl) throws ProtocolException
ProtocolExceptionpublic void deleteACL(String mbox, String user) throws ProtocolException
ProtocolExceptionpublic ACL[] getACL(String mbox) throws ProtocolException
ProtocolExceptionpublic Rights[] listRights(String mbox, String user) throws ProtocolException
ProtocolExceptionpublic Rights myRights(String mbox) throws ProtocolException
ProtocolExceptionpublic 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.
ProtocolExceptionpublic Response readIdleResponse()
public boolean processIdleResponse(Response r) throws ProtocolException
ProtocolExceptionpublic void idleAbort()
throws ProtocolException
ProtocolExceptionCopyright © 2018 JBoss by Red Hat. All rights reserved.