Sample code for 30+ languages & platforms
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

AutoIt
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)