Hi Peter and list,

I just realized that I received some advice off-list from another list member. It helped me resolve the problem, but the conversation about how I resolved the problem isn't in the list for future readers.

The problem was in my mbsyncrc. In the IMAPAccount section, I had set the "User" entry as:

   User username@workdom...@outlook.office365.com

This is the form used by my email client for connecting to my work's IMAP server. For mbsync, it just should be

   User username@workdomain

With this change, the authentication error was resolved and mbsync started syncing my work email.

I ran into one other problem - my work's IMAP server terminated the connection after the sync had partially processed my messages. To avoid this, I added an entry

   PipelineDepth 1

to my IMAPAccount section.

With these changes, I was able to successfully sync with my work email
using mbsync with mutt_oauth2.py.

Regards,
Norm


On 09 Jul, Norm Wood wrote:
Hi Peter,

Thanks for providing the details of how you set this up with oauth2ms.

I ended up returning to using mutt_oauth2.py, since I was already using it with mutt. It worked fine after correcting the "User" entry in the IMAPAccount section of my mbsyncrc as pointed out by Marton (and as described in Marton's webpage, a detail that I overlooked).

One thing I'll mention to possibly help future readers is that I didn't need to install the Moriyoshi cyrus-sasl-xoauth2 plugin. Some linux distributions include libkdexoauth2 (in Slackware 15, this is in /usr/lib64/sasl2) and this provides the xoauth2 plugin.

Thanks for the support, it's appreciated!

Regards,
Norm


On 08 Jul, Peter P. wrote:
Hi Norm,

* Norm Wood <normw...@fastmail.fm> [2025-07-07 19:36]:
[...]
appreciate suggestions on how to diagnose the problem further.  After
looking through isync-devel, I've also tried authenticating using the
oauth2ms tool.

I had success here with the instructions from
https://people.maths.bris.ac.uk/~mb13434/linux_m_uob/o365_imap_smtp.html
and below are my notes from how I did it about two years ago. Perhaps
this is helpful? They come without any warranty though.

best, Peter

------>
        sudo aptitude install libsasl2-dev
        git clone https://github.com/moriyoshi/cyrus-sasl-xoauth2.git
        ./autogen.sh
        ./configure
Edit Makefile to have the line
        pkglibdir = ${CYRUS_SASL_PREFIX}/lib/sasl2
yield
        pkglibdir = ${CYRUS_SASL_PREFIX}/lib/x86_64-linux-gnu/sasl2
and run
        sudo make install
which installs libraries into /usr/lib/x86_64-linux-gnu/sasl2
Reinstall isync to make it aware of the new sasl plugin(?)
        sudo aptitude reinstall isync
Get this following tool to fetch oauth2 tokens and copy it into ~/bin
        git clone https://github.com/harishkrupo/oauth2ms.git
        cd oauth2ms
        cp oauth2ms ~/bin/
Install requirements via apt
        apt install python3-xdg python3-msal python3-gnupg
Now I need to create and edit ~/.config/oauth2ms/config.json to yield
        {
                "tenant_id": "TENANT_ID",
                "client_id": "CLIENT_ID",
                "client_secret": "CLIENT_SECRET",
                "redirect_host": "localhost",
                "redirect_port": "5000",
                "redirect_path": "/getToken/",
                "scopes": ["https://outlook.office.com/IMAP.AccessAsUser.All";, 
"https://outlook.office.com/SMTP.Send";]
        }
Where TENANT_ID and CLIENT_ID are long strings which I got from the
local administrators of that email service.
Then I ran oauth2ms and it opened a browser through which I logged in and 
oauth2ms received a token in return, which got stored as 
~/.local/share/oauth2ms/credentials.bin


_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to