commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bogdan Drozdowski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (NET-333) would you provide a class used for imap protocol?
Date Sat, 26 Mar 2011 13:29:05 GMT

    [ https://issues.apache.org/jira/browse/NET-333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13011628#comment-13011628
] 

Bogdan Drozdowski commented on NET-333:
---------------------------------------

Explicit mode doesn't hang for me:
{noformat}
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN
AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.

TLS: success='true', reply: AAAA OK Begin TLS negotiation now.

LOGIN: success='true', reply: AAAB OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS
ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN
NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN
CONTEXT=SEARCH LIST-STATUS] Logged in

CAPA: success='true', reply: * CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE
UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH
LIST-STATUS                                                               
AAAC OK Capability completed.

NOOP: success='true', reply: AAAD OK NOOP completed.

SELECT: success='true', reply: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)        
                                                                                         

* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
{noformat}
My code is:
{code}
IMAPSClient c = new IMAPSClient (false);
c.setTrustManager (new X509TrustManager ()
{
	private final java.security.cert.X509Certificate[]
		EMPTY_X509CERTIFICATE_ARRAY = new java.security.cert.X509Certificate[]{};

	/**
	* No-op
	*/
	public void checkClientTrusted(java.security.cert.X509Certificate[] certificates, String
authType)
	{
		return;
	}

	public void checkServerTrusted(java.security.cert.X509Certificate[] certificates,
				       String authType)
				       throws java.security.cert.CertificateExpiredException,
					java.security.cert.CertificateNotYetValidException
	{
		for (int i = 0; i < certificates.length; ++i)
		{
			certificates[i].checkValidity();
		}
	}

public java.security.cert.X509Certificate[] getAcceptedIssuers()
	{
		return EMPTY_X509CERTIFICATE_ARRAY;
	}
});
c.setEnabledProtocols (new String[] {"SSLv3", "TLSv1", "SSLv2Hello"});
c.connect ("127.0.0.1", 143);
System.out.println (c.getReplyString());
boolean a;
a = c.execTLS();
System.out.println ("TLS: success='" + a + "', reply: " + c.getReplyString());
a = c.login ("bogdan", "bogdan");
System.out.println ("LOGIN: success='" + a + "', reply: " + c.getReplyString());
a = c.capability();
System.out.println ("CAPA: success='" + a + "', reply: " + c.getReplyString());
a = c.noop();
System.out.println ("NOOP: success='" + a + "', reply: " + c.getReplyString());
a = c.select("inbox");
System.out.println ("SELECT: success='" + a + "', reply: " + c.getReplyString());
{code}
You can seee an accept-all TrustManager, which I've used then because of the same Exception
you had.

You're right about the "* OK". I see two solutions: remember the last tag and scan for it
in the response (your solution) or make a boolean saying that the initial response has already
been received, so scanning for untagged OK responses should not happen anymore. The '*' stays
as a line continuation mark, however.

Lookin closer at the file in the repository:
* the "// The length() ..." comment in __getReply() can be removed
* the getAdditionalReply() method *probably* won't be needed any more (I don't know how does
an IMAP server return a message body, but I presume it'll be followed by a tagged response
anyway). I copied it from POP3Client, but IMAP probably works in a different way
* IMAPMail has all responses commented-out. Just checking: was this the way it was supposed
to be (just to show the usage, not the replies)? Anyway, imap.getAdditionalReply() may hang,
because it waits for a line consisting of only a period, and this is probably not a part of
the IMAP protocol.

Sorry for not replying for so long, I had no time for this recently.

> would you provide a class used for imap protocol?
> -------------------------------------------------
>
>                 Key: NET-333
>                 URL: https://issues.apache.org/jira/browse/NET-333
>             Project: Commons Net
>          Issue Type: Improvement
>            Reporter: iceviewer
>         Attachments: IMAP.zip, IMAPMail.java
>
>
> would you provide a class used for imap protocol?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message