Q:

Send e-mail using gmail and Indy

I am trying to send an e-mail from Delphi using gmail.
I have Indy 10.5.9.0 and Delphi XE3.
I got example code from:
http://www.andrecelestino.com/delphi-xe-envio-de-e-mail-com-componentes-indy/
I also tried other example codes but with same results.
I have libeay32.dll and ssleay32.dll from here:
http://www.andrecelestino.com/wp-content/files/DLLs-SSL-DelphiXE.rar
but I also tried:
http://indy.fulgan.com/SSL/openssl-1.0.2d-i386-win32.zip
with no luck.
My code (FULL):
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdMessage,
  IdSMTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdText;

procedure TForm1.Button1Click(Sender: TObject);
var
  // variáveis e objetos necessários para o envio
  IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
  IdSMTP: TIdSMTP;
  IdMessage: TIdMessage;
  IdText: TIdText;
  sAnexo: string;
begin
  // instanciação dos objetos
  IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
  IdSMTP := TIdSMTP.Create(Self);
  IdMessage := TIdMessage.Create(Self);

  try
    // Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
    IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
    IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;

    // Configuração do servidor SMTP (TIdSMTP)
    IdSMTP.IOHandler := IdSSLIOHandlerSocket;
    IdSMTP.UseTLS := utUseImplicitTLS;
    IdSMTP.AuthType := satDefault;
    IdSMTP.Port := 465;
    IdSMTP.Host := 'smtp.gmail.com';
    IdSMTP.Username := 'MYLOGIN@gmail.com';
    IdSMTP.Password := 'MYPASS';

    // Configuração da mensagem (TIdMessage)
    IdMessage.From.Address := 'MYLOGIN@gmail.com';
    IdMessage.From.Name := 'John Smith';
    IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
    IdMessage.Recipients.Add.Text := 'receiver@example.com';
    IdMessage.Subject := 'Hello World';
    IdMessage.Encoding := meMIME;

    // Configuração do corpo do email (TIdText)
    IdText := TIdText.Create(IdMessage.MessageParts);
    IdText.Body.Add('The body of the e-mail goes here');
    IdText.ContentType := 'text/plain; charset=iso-8859-1';

    // Conexão e autenticação
    try
      IdSMTP.Connect;
      IdSMTP.Authenticate;
    except
      on E:Exception do
      begin
        MessageDlg('Cannot authenticate: ' +
          E.Message, mtWarning, [mbOK], 0);
        Exit;
      end;
    end;

    // Envio da mensagem
    try
      IdSMTP.Send(IdMessage);
      MessageDlg('Message sent successfully!', mtInformation, [mbOK], 0);
    except
      On E:Exception do
      begin
        MessageDlg('Error while sending a message: ' +
          E.Message, mtWarning, [mbOK], 0);
      end;
    end;
  finally
    // liberação dos objetos da memória
    FreeAndNil(IdMessage);
    FreeAndNil(IdSSLIOHandlerSocket);
    FreeAndNil(IdSMTP);
  end;
end;

But I only get this error from Gmail:
https://accounts.google.com/ContinueSignIn?sarp=1&scc=1sdf[...] Please log in via your web browser and
then try again.
 Learn more at
 https://support.google.com/mail/answer/78754 t1sm2526415lcc.25 - gsmtp
I did log on https://accounts.google.com/ContinueSignIn?sarp=1&scc=1sdf[...] but I didn't tell me anything really. 

A:

It was because Google blocked login this way. 
So after spending 10 hours triple checking every possible setting in my code I found this page:
https://www.google.com/settings/security/lesssecureapps
and enabled access for "less secure apps".
UPDATE:
After that try to send an e-mail with Delphi and then if it fails log into your Gmail account and visit these 2 pages:
https://myaccount.google.com/device-activity
https://myaccount.google.com/secureaccount
and confirm this new "unknown device" is you (it's your Delphi app).

