smtpclient.send() -12
- New
- How-to
-
André Monz
- PowerBuilder
- Wednesday, 16 July 2025 02:45 PM UTC
Hello,
i want to send emails using a Microsoft account with OAuth2 authentication.
We use PB 2022R3 3397.
Retrieving the token works perfectly.
Only sending fails, lnv_SmtpClient.Send() always returns -12.
Does anyone have any idea what might be causing this?
Here is my code:
OAuthClient loac_Client
SMTPClient lnv_SmtpClient
TokenRequest ltr_Request
TokenResponse ltr_Response
string ls_AccessToken=""
String ls_Body=""
String ls_StatusText=""
Long ll_return
Long ll_StatusCode
Integer li_rc
loac_Client = Create OAuthClient
ltr_Request.tokenlocation = "https://login.microsoftonline.com/<*>/oauth2/v2.0/token"
ltr_Request.Method = "POST"
ltr_Request.secureprotocol = 0
ltr_Request.clientid = "<*>"
ltr_Request.clientsecret = "<*>"
ltr_Request.UserName = "myname@devnull.org"
ltr_Request.Password = "mysecret"
ltr_Request.scope = "https://outlook.office365.com/.default"
ltr_Request.granttype = "client_credentials"
ll_Return = loac_Client.AccessToken( ltr_Request, ltr_Response )
If ll_Return = 1 then
ll_StatusCode = ltr_Response.GetStatusCode()
ll_Return = ltr_Response.GetBody(ls_Body)
If ll_Return = 1 and ll_StatusCode = 200 Then
ls_AccessToken = ltr_Response.GetAccessToken()
end if
end if
if ls_accessToken="" then
Messagebox('OAuthClient','No Token available')
else
lnv_SmtpClient = CREATE SMTPClient
lnv_SmtpClient.Message.reset()
lnv_SmtpClient.Message.SetSender("myname@devnull.org","John Doe")
lnv_SmtpClient.Message.Encoding = 'windows-1252'
lnv_SmtpClient.Message.AddRecipient("info@devnull.org")
lnv_SmtpClient.Message.Subject = "SMTPClient Test Message"
lnv_SmtpClient.Message.TextBody = "SMTPClient example message body"
lnv_SmtpClient.Host = "smtp.office365.com"
lnv_SmtpClient.Port = 587
lnv_SmtpClient.EnableTLS = True
lnv_SmtpClient.Username = "myname@devnull.org"
lnv_SmtpClient.password = "mysecret"
lnv_SmtpClient.XOAuth2AccessToken = ls_accesstoken
li_rc = lnv_SmtpClient.Send()
IF li_rc = 1 THEN
Messagebox('SMTPClient','Mail sent successfully')
ELSE
Messagebox('SMTPClient' ,'Email sending failed. Return ' + String(li_rc) + '.', StopSign!)
END IF
DESTROY lnv_SmtpClient
end if
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.