Eivind Olsen wrote:
To follow up on this: it seems like the problem only
happens if the client
connects to perdition over SSL (TCP port 993). It gets through the
authentication / login part just fine.
Aaaand, I believe I now know why this happens. It's not related to
Perdition as such, but I got confused since it was able to get through the
login phase.
The real issue was that MS Exchange seems to require the full CRLF type of
linefeeds. Yes, I know the IMAP RFC states that CRLF is the proper
linefeed, so MS Exchange is technically speaking not doing anything wrong
here. Other IMAP servers are more relaxed and seem to accept the "wrong"
linefeeds.
When I did manual testing with "telnet", it added the proper linefeeds.
When I did manual testing with "openssl s_client" it didn't add the proper
linefeeds, it just passed along my plain LFs. Perdition picks up the login
details, re-writes them and sends them to Exchange after adding the proper
linefeeds. That's why this part works. Then I send further commands
without CRLF, Perdition passes them along as-is without adding CRLF, and
Exchange sits there waiting for a CRLF.
When testing with "openssl s_client" and adding the "-crlf" option,
everything works fine.
Regards
Eivind Olsen