I am attempting to use PHPMailer SMTP and Oauth2 to send mail via Exchange Online, but, despite PHPMailer Oauth2 being able to get an Auth Token from the Azure application, PHPMailer SMTP fails to authenticate. Here is a sample of the relevant log:
2022-06-07 16:35:32 SMTP INBOUND: "250-ENHANCEDSTATUSCODES" 2022-06-07 16:35:32 SMTP INBOUND: "250-AUTH LOGIN XOAUTH2" 2022-06-07 16:35:32 SMTP INBOUND: "250-8BITMIME" 2022-06-07 16:35:32 SMTP INBOUND: "250-BINARYMIME" 2022-06-07 16:35:32 SMTP INBOUND: "250-CHUNKING" 2022-06-07 16:35:32 SMTP INBOUND: "250 SMTPUTF8" 2022-06-07 16:35:32 SERVER -> CLIENT: 250-LO2P265CA0025.outlook.office365.com Hello [20.108.3.44]250-SIZE 157286400250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-AUTH LOGIN XOAUTH2250-8BITMIME250-BINARYMIME250-CHUNKING250 SMTPUTF8 2022-06-07 16:35:32 Auth method requested: XOAUTH2 2022-06-07 16:35:32 Auth methods available on the server: LOGIN,XOAUTH2 2022-06-07 16:35:33 CLIENT -> SERVER: AUTH XOAUTH2 dXNlcj1taXNzaW9uYXNzaXN0QG1pc3Npb25hc3Npc3Qub3JnLnVrAWF1dGg9QmVhcmVyIGV5SjBlWEFpT2lKS1YxUWlM
…
Tk3UjY1bktpQzZnenRwM0xhNlg1ZwEB 2022-06-07 16:35:39 SMTP INBOUND: "535 5.7.3 Authentication unsuccessful [LO2P265CA0025.GBRP265.PROD.OUTLOOK.COM]" 2022-06-07 16:35:39 SERVER -> CLIENT: 535 5.7.3 Authentication unsuccessful [LO2P265CA0025.GBRP265.PROD.OUTLOOK.COM] 2022-06-07 16:35:39 SMTP ERROR: AUTH command failed: 535 5.7.3 Authentication unsuccessful [LO2P265CA0025.GBRP265.PROD.OUTLOOK.COM] SMTP error: Could not authenticate. 2022-06-07 16:35:39 CLIENT -> SERVER: QUIT
I have given the application lots of MS Graph permissions, but perhaps PHPMailer Oauth2 needs other permissions.
I could, of course, revert to basic authentication, but Microsoft are retiring that for SMTP, aren’t they?
Any suggestions?