![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) OAuth2 for a GMail using a P12 Service Account KeySee more GMail REST API ExamplesDemonstrates how to use GMail with OAuth2 for aservice account within a Google Workspace Account where your email domain is custom (e.g., @yourcompany.com ).
Note: This example does not work for For more information, see https://www.chilkatsoft.com/google_workspace_setup_smtp_gmail.asp
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vCert Handle hoCert Boolean iSuccess String sIss String sScope String sOauth_sub Integer iNumSec String sAccessToken Handle hoMailman Variant vEmail Handle hoEmail String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End // -------------------------------------------------------------------------------- // For a step-by-step guide for setting up your Google Workspace service account, // see Setup Google Workspace Account for Sending SMTP GMail from a Service Account // -------------------------------------------------------------------------------- // Begin by loading your Google service account key (.p12) Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadPfxFile Of hoCert "c:/someDirectory/keys/chilkat25-cbd7b42afbd8.p12" "notasecret" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // The ISS is your service account email address ending in gserviceaccount.com. Move "chilkatsvc@chilkat25.iam.gserviceaccount.com" To sIss // The scope is always the following string: Move "https://mail.google.com/" To sScope // The sub is your company email address Move "bob@yourcompany.com" To sOauth_sub // The access token is valid for this number of seconds. Move 3600 To iNumSec Get pvComObject of hoCert to vCert Get ComG_SvcOauthAccessToken Of hoHttp sIss sScope sOauth_sub iNumSec vCert To sAccessToken Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Else Begin Showln "access token: " sAccessToken End // The access token allows us to send unlimited emails while it's valid. Once it expires, we must obtain and use a new one. // ----------------------------------------------------------------------- Get Create (RefClass(cComChilkatMailMan)) To hoMailman If (Not(IsComObjectCreated(hoMailman))) Begin Send CreateComObject of hoMailman End // Set the properties for the GMail SMTP server: Set ComSmtpHost Of hoMailman To "smtp.gmail.com" Set ComSmtpPort Of hoMailman To 587 Set ComStartTLS Of hoMailman To True Set ComSmtpUsername Of hoMailman To "bob@yourcompany.com" Set ComOAuth2AccessToken Of hoMailman To sAccessToken // Create a new email object Get Create (RefClass(cComChilkatEmail)) To hoEmail If (Not(IsComObjectCreated(hoEmail))) Begin Send CreateComObject of hoEmail End Set ComSubject Of hoEmail To "This is a test" Set ComBody Of hoEmail To "This is a test" Set ComFrom Of hoEmail To "Bob <bob@yourcompany.com>" Get ComAddTo Of hoEmail "Recipient" "recipient@example.com" To iSuccess // To add more recipients, call AddTo, AddCC, or AddBcc once per recipient. Get pvComObject of hoEmail to vEmail Get ComSendEmail Of hoMailman vEmail To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Procedure_Return End Get ComCloseSmtpConnection Of hoMailman To iSuccess If (iSuccess <> True) Begin Showln "Connection to SMTP server not closed cleanly." End Showln "Successfully sent email using Gmail with a service account key." End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.