Some of our customers already experienced this problem with Rebex SMTP client on .NET CF connecting to gmx.net mail servers.
It is actually the Diffie-Hellmann group exchange algorithm which takes around 12 seconds to initialize during the TLS negotiation on the .NET CF platform.
The gmx mail servers seem to have a rather short timeout of 10 seconds which results in the server closing the connection and the error being raised eventually.
Luckily, there is a simple workaround which will make the TLS connection to the “smtp.gmx.net” SMTP server work on the .NET CF platform as well. The trick is to explicitly enable only the RSA algorithms (meaning that the Diffie-Hellman will not be used and thus you will get rid of the slowdown which causes the server to close the connection). Here is the code snippet:
Smtp smtp = new Smtp();
smtp.Settings.SslAllowedSuites =
TlsCipherSuite.RSA_WITH_3DES_EDE_CBC_SHA |
TlsCipherSuite.RSA_WITH_AES_128_CBC_SHA |
TlsCipherSuite.RSA_WITH_AES_256_CBC_SHA;
smtp.Connect("smtp.gmx.net", 587, SslMode.Explicit);
// etc
smtp.Disconnect();
Just to make it clear it is the .NET CF native API which Rebex uses internally that takes so long to initialize so we have limited control over it. There might be WIndowsCE or Windows Mobile devices with a hardware powerful enough to compute the Diffie-Hellman key-exchange on time even with gmx.net mail servers.