Ver Mensaje Individual
  #1  
Antiguo 16-10-2019
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Unhappy Envío de mail con Indy

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'; //'smtp.gmail.com:587';
    Host := 'smtp.gmail.com';
    MaxLineAction := maException;
    Port := 465; //587;

//    SSLOptions.Method := sslvSSLv3;
    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; // 25;
    SASLMechanisms.Add.SASL:=IdSASLLogin;
    AuthType:=satSASL;
    ValidateAuthLoginCapability:=True;
    Username := 'santiago14@gmail.com'; //Usuario del correo SMTP
    Password := 'mipass'; //Pas del correo POP
    UseTLS := utUseImplicitTLS; //utUseExplicitTLS;
  end;

  Mensaje := TIdMessage.Create(nil);
  with Mensaje do
  begin
    Clear;
    Subject := 'Mi primer mensaje'; //Asunto del mensaje
    Body.Text := 'Hola. Este es mi primer mensaje'; //Cuerpo del mensaje. Podría ser HTML
    Recipients.Add;
    Recipients.Items[0].Address := 'srusso_19bj@yahoo.com'; //Mail destino. Va uno por Address
  end;

  try
    Smtp.Connect;
    if smtp.Connected then
    begin
  //    btnEnviarMail.Enabled:=False;
      smtp.Send(Mensaje);
      smtp.Disconnect;
  //    btnEnviarMail.Enabled:=True;
      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.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita