Buenos días a todos
Se me presenta el siguiente mensaja "SSL Negotiation failed" cuando intento enviar un correo a tráves del componente Indy.
Pero este mensaje solo se me presenta con un host, ya que con otros host no pasa.
Ejemplo
Host que presenta error
Host de error: mail.rehabilitar.com.co
Puerto: 465
email: correo@rehabilitar.com.co
pw: *******
Host que envia el correo sin problemas
Host de error: mail.esepopayan.gov.co
Puerto: 465
email: correo@esepopayan.gov.co
pw: *******
Ya he realizado varios ajustes(ddl, ajuste a method entre otros) y nada, siempre que pongo el host mail.rehabilitar.com.co me sale el error, lo cambio a mail.esepopayan.gov.co y pasa sin problemas.
No se si tenga que ver que el host de esepopyan funcione en un servidor windows y el de rehabilitar en un servidor linux. No tengo conocimientos sobre esas cuestiones.
Muchas gracias por la ayuda que me puedan brindar.
class function TUEnviarCorreo.EnviarCorreo(pParametrosEmail : TParametrosEmailAWA): Boolean; var vSSL : TIdSSLIOHandlerSocketOpenSSL; vSMPT : TIdSMTP; vDATA: TIdMessage; vAttachmentfile : TIdAttachmentFile; i : Integer; vZip : TZIPFile ; vNombreZipArchivo:string; begin vSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil); vSMPT := TIdSMTP.Create(nil); vDATA := TIdMessage.Create(nil); vZip := TZipFile.Create; try // asignar datos SSL vSSL.Host := trim(pParametrosEmail.FHost); vSSL.Port := pParametrosEmail.FPort; vSSL.MaxLineAction := maException; vSSL.Destination := trim(vSSL.Host) + ':' + trim(vSSL.Port.ToString); vSSL.SSLOptions.Method := sslvTLSv1_2; vSSL.SSLOptions.Mode := sslmUnassigned; vSSL.SSLOptions.VerifyMode := []; vSSL.SSLOptions.VerifyDepth := 0; // asignar datos SMTP vSMPT.Host := trim(pParametrosEmail.FHost); vSMPT.Port := pParametrosEmail.FPort; vSMPT.Username := trim(pParametrosEmail.FDireccionSalida); // please change to your gmail address // vSMPT.Password := trim(pParametrosEmail.FDireccionPassword); vSMPT.IOHandler := vSSL; vSMPT.AuthType := satDefault; vSMPT.UseTLS := utUseExplicitTLS; // asignar informacion del mensaje vDATA.Subject := trim(pParametrosEmail.FAsunto); vDATA.Recipients.EMailAddresses := trim('xxxxxx@gmail.com'); if (pParametrosEmail.FCC = 'T') then vDATA.CCList.EMailAddresses := trim(pParametrosEmail.FDireccionSalida); vDATA.Body.Text := pParametrosEmail.FMensaje; vDATA.From.Name := trim(pParametrosEmail.FNombreDireccionSalida); vDATA.From.Address := trim(pParametrosEmail.FDireccionSalida); //vDATA.ReceiptRecipient.Address := trim(pParametrosEmail.FDireccionSalida); vNombreZipArchivo := pParametrosEmail.FNumeroFactura+'.zip'; vZip.Open(pParametrosEmail.FRuta+vNombreZipArchivo, zmWrite); for i := 0 to pParametrosEmail.FArchivosAdjuntos.Count - 1 do begin vZip.Add(WideString(pParametrosEmail.FArchivosAdjuntos[i])); //vAttachmentfile := TIdAttachmentFile.Create(vDATA.MessageParts, WideString(pParametrosEmail.FArchivosAdjuntos[i])) end; vAttachmentfile := TIdAttachmentFile.Create(vDATA.MessageParts,pParametrosEmail.FRuta+vNombreZipArchivo); vZip.Close; try //ShowMessage('correo 5 cuente'); if not vSMPT.Connected then vSMPT.Connect; //ShowMessage('correo 5.1 cuente de nuevo'); vSMPT.Send(vDATA); vSMPT.Disconnect(True); Result := true; except on E: Exception do begin ShowMessage(E.Message); Result := false; end; end; finally vSMPT.Free; vSSL.Free; vZip.Free; end; end;