AutoIt
AutoIt
Office365 POP3 Login with OAuth2 Authentication
See more Office365 Examples
Demonstrates how to authenticate using OAuth2 using the POP3 protocol with outlook.office365.com.Note: This example requires Chilkat v9.5.0.83 or greater.
Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oMailman = ObjCreate("Chilkat.MailMan")
$oMailman.MailHost = "outlook.office365.com"
$oMailman.MailPort = 995
$oMailman.PopSsl = True
; Use your O365 email address here.
$oMailman.PopUsername = "OFFICE365_EMAIL_ADDRESS"
; When using OAuth2 authentication, leave the password empty.
$oMailman.PopPassword = ""
; Load our previously obtained OAuth2 access token.
$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/office365.json")
If ($bSuccess = False) Then
ConsoleWrite($oJsonToken.LastErrorText & @CRLF)
Exit
EndIf
$oMailman.OAuth2AccessToken = $oJsonToken.StringOf("access_token")
; Make the TLS connection to the outlook.office365.com POP3 server.
$bSuccess = $oMailman.Pop3Connect()
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Exit
EndIf
; Authenticate using XOAUTH2
$bSuccess = $oMailman.Pop3Authenticate()
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Exit
EndIf
; Find out how many emails are on the server..
Local $iNumEmails = $oMailman.CheckMail()
If ($iNumEmails < 0) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Exit
EndIf
; Examine the POP3 session log:
ConsoleWrite($oMailman.Pop3SessionLog & @CRLF)
; The POP3 session log will look something like this:
; **** Connected to outlook.office365.com:995
; < +OK The Microsoft Exchange POP3 service is ready. [QwBIADIAUABSADEAOABD...YwBvAG0A]
; > AUTH XOAUTH2
; < +
; > <base64 string in XOAUTH2 format>
; < +OK User successfully authenticated.
; > STAT
; < +OK 3 375302
; End the POP3 session and close the connection to the GMail server.
$bSuccess = $oMailman.Pop3EndSession()
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("Finished." & @CRLF)