The following links may point to KB articles created by external entities - use with caution
Using Alpine
OAUTH2 with O365/Exchange MFA has been tested successfully on Alpine 2.24 and 2.25. It has not been tested on 2.23. Initial testing indicates it does not work with 2.22 since the needed menu items are missing. Alpine's own HOW TO link shows Alpine 2.22 as an example, but it appears to actually not work with that version.
This was documented against Alpine 2.25 on Ubuntu 18.04 and 20.04. (built from source)
(Note: Alpine 2.25 in this case was built with --with-passfile=.pine-passfile)
* $ touch ~/.pine-passfile (Doing this will permit Alpine to save the token so that you do not need to re-auth every time!)
* $ alpine
* Setup
* Config
* SMTP Server: smtp.office365.com/user=YourID@purdue.edu/submit/auth=xoauth2
* Inbox Path: {outlook.office365.com/ssl/user=YourID@purdue.edu/auth=xoauth2}INBOX
Note that it may be necessary to update other folders (Trash, Sent, Drafts) folder
collections, and your remote-pincer to include "/auth=xoauth2" in the appropriate place.
* (Exit Setup)
* Quit
* $ alpine
* The "Authorizing Alpine Access to Outlook Email Services" message should come up.

* Visit "https://microsoft.com/devicelogin" in a browser.
* Paste in the code into the browser to authorize Alpine access.
* (Wait a few seconds in the Alpine window)
* You should be prompted to save the access token on disk. Press yes.
(Or you will have to repeat this process on every login!)

* Create a master password for your password file - This is the password you will use to authenticate Alpine from now on.

Unknowns at this point: Does the device have to be reauthorized after 30 days? Most device authorizations (for instance, when a Fire TV authorizes itself to use X or another service) last indefinitely, but the reauthorization period might affect this too.
Update September 24, 2021:
Custom Alpine 2.25 packages have been built for Ubuntu 18.04 and 20.04 here. Use at your own risk!
Using Evolution
* Install Evolution (if it isn't already!)
# apt-get install evolution evolution-ews evolution-plugins
* Start Evolution
$ evolution
* The initial setup wizard should start. Click next.

* Click next through the restore backup prompt.

* Fill in your Full Name and Email Address appropriately.

* Select "Exchange Web Services" for the server type.
* Verify that the email address is correct.
* The Host URL should be: https://outlook.office365.com/EWS/Exchange.asmx
* Don't click "Fetch URL"...It won't work.
* Set the Authentication box from NTLM to "OAuth2 (Office365)"
* Select "Override Office365 OAuth2 settings"
* Application ID should be set to: 751cf8be-ca07-484b-9308-fac4b9d85eff

* Select your receiving options. Typically, the defaults are fine.

* Final verification of settings.

* Evolution should now begin the Office365 MFA login process.
- Initially, you may see errors related to a failed login. Despite this, it still seems to work.
Using Thunderbird
Setting up a new Thunderbird account with Microsoft MFA
Converting an existing Thunderbird setup for Microsoft MFA