Delphi DLL
Delphi DLL
GMail App Password
See more GMail SMTP/IMAP/POP Examples
Demonstrates how to authenticate using an app password with GMail for IMAP and SMTP.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Imap, MailMan;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
imap: HCkImap;
mailman: HCkMailMan;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Starting May 30, 2022, Google will no longer support the use of third-party apps or devices
// which ask you to sign in to your Google Account using only your username and password.
// Instead of authenticating with your GMail username/password, a GMail user can create an App Password
// and then login using their username/app_password. It's literally the same, except it allows a GMail
// account owner to isolate passwords to specific applications.
// The Gmail account owner would first need to make sure she has 2-Step Verification setup for her account.
// Note: The 2FA verification is not a factor when authenticating with an app password. The 2FA is required
// to setup app passwords in the Google account console. See Sign in with App Passwords
// After the GMail account owner has setup his app password, he simply uses the app password instead of his GMail account password.
// For example:
imap := CkImap_Create();
CkImap_putSsl(imap,True);
CkImap_putPort(imap,993);
success := CkImap_Connect(imap,'imap.gmail.com');
if (success = False) then
begin
Memo1.Lines.Add(CkImap__lastErrorText(imap));
Exit;
end;
success := CkImap_Login(imap,'user@gmail.com','srnyyvqajocnsvdp');
if (success = False) then
begin
Memo1.Lines.Add(CkImap__lastErrorText(imap));
Exit;
end;
Memo1.Lines.Add('IMAP Success!');
// For SMTP..
mailman := CkMailMan_Create();
CkMailMan_putSmtpHost(mailman,'smtp.gmail.com');
CkMailMan_putSmtpUsername(mailman,'user@gmail.com');
CkMailMan_putSmtpPassword(mailman,'srnyyvqajocnsvdp');
CkMailMan_putSmtpSsl(mailman,True);
CkMailMan_putSmtpPort(mailman,465);
success := CkMailMan_SmtpConnect(mailman);
if (success = False) then
begin
Memo1.Lines.Add(CkMailMan__lastErrorText(mailman));
Exit;
end;
success := CkMailMan_SmtpAuthenticate(mailman);
if (success = False) then
begin
Memo1.Lines.Add(CkMailMan__lastErrorText(mailman));
Exit;
end;
Memo1.Lines.Add('SMTP Success!');
CkImap_Dispose(imap);
CkMailMan_Dispose(mailman);
end;