Buenas tardes a todos,
Tengo el siguiente proceso que ha estado funcionando perfectamente, pero ha pasado algo que me tiene desconcertado.
En el trabajo envío emails desde el usuario al administrador, a través de una aplicación de Delphi 2010 Seatle en windows 10, al usuario le presento un mensaje de que se ha enviado un email pero este tarda hasta 50 segundos o más en enviarse y se queda la aplicación paralizada, sin embargo, en casa cuando lo pruebo, se envían sin esperar apenas 2 segundos. ¿que puede estar pasando?. ¿Cómo hago para reducir ese tiempo, por qué en casa va bien, siendo el mismo programa?. En el trabajo iba bien y ahora va muy lento. He cambiado los puertos de 465 a 587 que són los que admite mi proveedor de email.
Este es el procedimiento que utilizo y que hasta ahora iba bien, pero ahora tarda casi un minuto, aunque los emails sí llegan perfectamente.
Código Delphi
[-]procedure TServerMethods1.enviarEmail(destinatario, asunto, cuerpo: string);
var
DATA: TIDMessage;
SMTP: TIDsmtp;
SSL: TIdSSLIOhandlerSocketOpenSSL;
begin
SMTP := TIDsmtp.Create(nil);
DATA := TIDMessage.Create(nil);
SSL := TIdSSLIOhandlerSocketOpenSSL.Create(nil);
SSL.SSLOptions.Method := SSLVtlsv1;
SSL.SSLOptions.Mode := sslmUNassigned;
SSL.SSLOptions.VerifyMode := [];
SSL.SSLOptions.VerifyDepth:= 0;
DATA.ContentType := 'text/plain';
DATA.CharSet := 'UTF-8';
DATA.From.Address := 'correo@inventado.es';
DATA.Recipients.EMailAddresses := destinatario;
DATA.Subject := asunto;
DATA.Body.Text := cuerpo;
SMTP.IOHandler := SSL;
SMTP.Host := 'smtp.servidorinventado.com'; SMTP.Port := 465;
SMTP.Username := 'correo@inventado.es';
SMTP.Password := 'contraseñaficticia';
SMTP.UseTLS := utUseExplicitTLS;
try
try
SMTP.Connect;
SMTP.Send(DATA); SMTP.Disconnect;
except
SMTP.Disconnect;
end;
finally
SMTP.Free;
DATA.Free;
SSL.Free;
end;
end;
Gracias por vuestra ayuda.