Buenas, estoy intentando enviar un mail desde mi aplicación Delphi.
Trabajo con Delphi XE5, Indy 10.6.0.5040
Pongo el código fuente. Al momento de enviar el mail aparecen los errores. He pasado por diversos errores, pero el último ha sido este:
Código:
Username and Password not accepted. Learn more at https://support.google.com/mail/?p=BadCredentials g31sm15095354qte.78 - gsmtp
Otros errores que he tenido, mientras hacía cambios y cosas han sido:
Código:
Error connecting with SSL.
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
Código:
Need SASL mechanisms to login with it!!
Ya se me quemaron todas las ideas. Intento enviar a través del SMTP de mi GMail.
Código Delphi
[-]
procedure TfrmPrincipal.btnEnviarMailClick(Sender: TObject);
var
Smtp : TidSMTP;
ManejadorSSL : TidSSLIOHandlerSocketOpenSSL;
Mensaje: TIdMessage;
idSASLLogin:TIdSASLLogin;
idUserPassProvider:TIdUserPassProvider;
begin
ManejadorSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
with ManejadorSSL do
begin
Destination := 'smtp.gmail.com:465'; Host := 'smtp.gmail.com';
MaxLineAction := maException;
Port := 465;
SSLOptions.Method := sslvSSLv23;
SSLOptions.SSLVersions := [sslvSSLv23];
SSLOptions.Mode := sslmUnassigned;
SSLOptions.VerifyMode := [];
SSlOptions.VerifyDepth := 0;
end;
Smtp := TIdSMTP.Create( nil );
idSASLLogin := TIdSASLLogin.Create(Smtp);
idUserPassProvider := TIdUserPassProvider.Create(idSASLLogin);
idSASLLogin.UserPassProvider := idUserPassProvider;
idUserPassProvider.Username := 'santiago14@gmail.com';
idUserPassProvider.Password := 'mipass';
with Smtp do
begin
IoHandler := ManejadorSSL;
Host := 'smtp.gmail.com';
Port := 465; SASLMechanisms.Add.SASL:=IdSASLLogin;
AuthType:=satSASL;
ValidateAuthLoginCapability:=True;
Username := 'santiago14@gmail.com'; Password := 'mipass'; UseTLS := utUseImplicitTLS; end;
Mensaje := TIdMessage.Create(nil);
with Mensaje do
begin
Clear;
Subject := 'Mi primer mensaje'; Body.Text := 'Hola. Este es mi primer mensaje'; Recipients.Add;
Recipients.Items[0].Address := 'srusso_19bj@yahoo.com'; end;
try
Smtp.Connect;
if smtp.Connected then
begin
smtp.Send(Mensaje);
smtp.Disconnect;
Application.MessageBox('Correo enviado', 'Correos', MB_OK);
end;
except
on e:Exception do
begin
Log(e.Message);
mErrores(e, 'No se envió el mail.', 'Correos');
end;
end;
FreeAndNil(Smtp);
FreeAndNil(Mensaje);
FreeAndNil(ManejadorSSL);
end;
Espero puedan ayudarme. Si necesitan mas datos, los tengo.
Gracias.