Sample code for 30+ languages & platforms
PowerBuilder

SMTP XOAUTH2 Authentication

See more SMTP Examples

Demonstrates how to authenticate using an OAuth2 access token. This example assumes you have already obtained the access token and now wish to use it in an SMTP session.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
string ls_Oauth2_access_token
oleobject loo_Mailman
oleobject loo_Email

li_Success = 0

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

ls_Oauth2_access_token = "some_previously_obtained_token"

loo_Mailman = create oleobject
li_rc = loo_Mailman.ConnectToNewObject("Chilkat.MailMan")
if li_rc < 0 then
    destroy loo_Mailman
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Set the properties for the SMTP server, whatever they may be..
loo_Mailman.SmtpHost = "smtp.example.com"
loo_Mailman.SmtpPort = 587
loo_Mailman.StartTLS = 1

loo_Mailman.SmtpUsername = "myLogin"
loo_Mailman.OAuth2AccessToken = ls_Oauth2_access_token

// Create a new email object
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")

loo_Email.Subject = "This is a test"
loo_Email.Body = "This is a test"
loo_Email.From = "Joe Example <joe@example.com>"
loo_Email.AddTo("Chilkat Admin","admin@chilkatsoft.com")

// Connect to the server indicated by the SmtpHost property
li_Success = loo_Mailman.SmtpConnect()
if li_Success <> 1 then
    Write-Debug loo_Mailman.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    return
end if

// Authenticate using XOAUTH2 (using the OAuth2AccessToken)
li_Success = loo_Mailman.SmtpAuthenticate()
if li_Success <> 1 then
    Write-Debug loo_Mailman.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    return
end if

li_Success = loo_Mailman.SendEmail(loo_Email)
if li_Success <> 1 then
    Write-Debug loo_Mailman.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    return
end if

Write-Debug "Email sent."

loo_Mailman.CloseSmtpConnection()


destroy loo_Mailman
destroy loo_Email