On Mon, 18 May 2015 13:09:18 GMT, Suliman wrote:

Do you mean do something like this:

final switch (ver) {
case SSLVersion.tls1: method = SSLv23_client_method(); break; // fix here
case SSLVersion.ssl3: method = SSLv3_client_method(); break;
//case SSLVersion.tls1: method = TLSv1_client_method(); break;
case SSLVersion.dtls1: method = DTLSv1_client_method(); break;

and then recompile project? Maybe there any way to specify what I need in my app?

I just tried and actually TLS seems to be the issue (SSL 3 works fine). Changing the line around smtp.d:165 to:

auto ctx = createTLSContext(TLSContextKind.client, TLSVersion.ssl3)

Fixes the issue. Judging by some Google results, this seems to be a general interoperability issue with newer OpenSSL versions. See also: http://serverfault.com/questions/588125/openssl-update-1-0-1f-to-1-0-1g-broke-sendmail-ssl23-get-server-hellotlsv1-ale

It's kind of strange that such an error still exists (introduced in 1.0.1g and still in 1.0.1m) when it occurs with such a major e-mail provider. It seems like the only sensible fix I can provide is to add a tlsVersion field to SMTPClientSettings.