Delphi DLL
Delphi DLL
SMTP GMail Send using App Password
See more GMail SMTP/IMAP/POP Examples
Demonstrates how to authenticate using an app password with GMail for SMTP (port 465 using implicit SSL/TLS).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, MailMan;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
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.
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!');
CkMailMan_Dispose(mailman);
end;