Salve a tutti sto sviluppando una applicazione che si collega al mio server di posta smtp tramite tls sulla porta 25, ed invia le mail. Ho creato il contesto ssl e altre cose ma quando faccio il ehlo al server smtp mi da un errore 50. Il codice è questo:
SocketAddress socketAddress = new InetSocketAddress(mHost, mPort);
TrustManager easyTrustManager = new X509TrustManager() {

public void checkClientTrusted(
X509Certificate[] chain,
String authType) throws CertificateException {
}

public void checkServerTrusted(
X509Certificate[] chain,
String authType) throws CertificateException {
}

public X509Certificate[] getAcceptedIssuers() {
//return null;
return new X509Certificate[0];
}

};

String localHost = "localhost.localdomain";
try
{
InetAddress localAddress = InetAddress.getLocalHost();
if (! localAddress.isLoopbackAddress())
{
localHost = localAddress.getHostName();
}
}
catch (Exception e)
{
}
mSocket = new Socket("mail.mio.it",25);
// mSocket.connect("mail.mio.it", );
//mSocket.setSoTimeout(10);

mIn = mSocket.getInputStream();
mOut = mSocket.getOutputStream();

// Eat the banner
executeSimpleCommand(null);
executeSimpleCommand("STARTTLS");
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null,new TrustManager[] { easyTrustManager }, new java.security.SecureRandom());
mSocket = sslContext.getSocketFactory().createSocket(mSocket , mHost, mPort,
true);
mSecure = true;
mIn = mSocket.getInputStream();
mOut = mSocket.getOutputStream();
//List<String> results = executeSimpleCommand("EHLO " + localHost);
executeSimpleCommand("EHLO " + localHost);
saslAuthPlain(mUsername, mPassword);

Qualche idea?
Ho debugato e ho visto che dopo sslContext.getSocketFactory().createSocket la variabile connect di mSocket è false, mentre prima era true.
Grazie