I am recompiling a Delphi XE3 application in Delphi XE8.
The application sends messages to Amazon SES (tried Ireland and North Virginia) using a TIdSMTP object.
These are some of the attributes set in the TIdSMTP component (UPDATE: more fields added):
IOHandler
isIdSSLIOHandlerSocketOpenSSL
with the following subfields:Destination
is email-smtp.eu-west-1.amazonaws.com:25,Host
isemail-smtp.eu-west-1.amazonaws.com
,IPVersion
isId_IPv4
,MaxLineAction
ismaException
,MaxLineLength
is16384
,Port
is25
,ReadTimeOut
is-1
,RecvBufferSize
is32768
,ReuseSocket
isrsOSDependent
,SendBufferSize
is32768
,SSLOptions.Method
issslvTLSv1
,SSLOptions.Mode
issslmUnassigned
,SSLOptions.SSLVersions
is[sslvTLSv1]
,TransparentProxy
isIdSSLIOHandlerSocketOpenSSL.
,TransparentProxy.Autentication
isNoAuthentication
,TransparentProxy.IPVersion
isId_IPv4
,TransparentProxy.Port
is1080
,TransparentProxy.Version
issvNoSocks
,UseNagle
isTrue
Port
is25
UseTLS
isutUseExplicitTLS
- "About Indy" is 10.6.2.5263
With XE8, I get an "SSL negotiation failed." exception at line handler.Send(msg);
in the following code. The exact same code works fine with XE3, so I guess it might be somehow related to the Indy update.
var
handler: TIdSMTP;
.
.
handler.
handler.Connect;
handler.Send(msg);
Why am I getting this exception in XE8? The machine where now XE8 is installed is the same where XE3 was installed, and the SSL dlls are still in the respective Degug and Release output directories. XE8 for now only uses the Debug output directory and the old XE3 executable works fine still from the Release output directory.
UPDATE: The issue was fixed simply by updating old SSL DLLs in the Dev machine. Apparently the latest Indy disables by default unsecure stuff.