Delphi Indy 10 SMTP Error "No se puede autenticar en la actualidad"
Pregunta
Estoy usando este código para enviar un mensaje de prueba de Delphi Indy. Tengo un TIDSMTP, TidMessage e IDSSLIOHANDLERSOCTOPENSSL;
En el código a continuación, si lo configura para usar Gmail con SSL, funciona bien, pero tan pronto como reemplazo mis detalles del servidor con mis detils del servidor de correo cpanel, no funciona por error:
"No se puede autenticar en la actualidad".
Usé los mismos detalles que usaría para configurar mi cuenta en Outlook 2007. Aquí está el código
IDSSLIOHANDLERSOCTOPENSSL Detalles.
method := sslvsslv3
mode := sslmUnassigned
//rest default values
procedure Tfrmnotification.btnSendClick(Sender: TObject);
var
IdMsg : TIdMessage;
begin
begin
IdMsg := TIdMessage.Create(nil);
try
with TIdSMTP.Create(nil) do
try
// UserName := 'something@gmail.com';
// Password := 'pass';
// Host := 'smtp.gmail.com';
// IOHandler := IdSSLIOHandlerSocketOpenSSL;
// Port := 587;
UserName := 'something@sasra.co.za';
Password := 'password';
Host := 'outgoing server detials';// same as outlooks
IOHandler := IdSSLIOHandlerSocketOpenSSL;
Port := 465;// this is correct port
UseTLS:= utUseExplicitTLS;
IdMsg.Body.Add('test');
IdMsg.Recipients.emailAddresses := 'something@gmail.com';
IdMsg.Subject := 'test';
IdMsg.From.Address := 'something@sasra.co.za';
IdMsg.From.Name := 'john';
Connect;
Send(IdMsg);
Disconnect;
finally
Free;
end;
finally
IdMsg.free;
end;
showmessage('done');
end;
Cualquier ayuda sería apreciada.
Solución
El puerto 465 se utiliza para SMTP sobre SSL implícito. Has establecido useTls en UtUseExplicittls. El valor correcto debería (muy probablemente) ser utuseImplicittls.