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)