jgunthorpe / cloud_mdir_sync

Download mailboxes from the cloud into a local MailDir
Other
16 stars 9 forks source link

cms-oauth IMAP failure #11

Closed gobenji closed 2 years ago

gobenji commented 2 years ago

I tried the IMAP mode of cms-oauth with an Office365 account but it failed:

ben@d3:~/.mail/nvidia/cloud_mdir_sync$ ./cms-oauth --cms_sock=/var/run/user/1000/cms.sock --proto=IMAP --user=bpoirier@nvidia.com --output=token
Traceback (most recent call last):
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/.venv/bin/cms-oauth", line 33, in <module>
    sys.exit(load_entry_point('cloud-mdir-sync', 'console_scripts', 'cms-oauth')())
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/cloud_mdir_sync/cms_oauth_main.py", line 98, in main
    xoauth2_token = get_xoauth2_token(args)
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/cloud_mdir_sync/cms_oauth_main.py", line 24, in get_xoauth2_token
    raise ValueError(f"Invalid CMS server response {ret!r}")
ValueError: Invalid CMS server response ''

The '--test-imap' option failed likewise:

ben@d3:~/.mail/nvidia/cloud_mdir_sync$ ./cms-oauth --cms_sock=/var/run/user/1000/cms.sock --user=bpoirier@nvidia.com --test-imap outlook.office365.com
Traceback (most recent call last):
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/.venv/bin/cms-oauth", line 33, in <module>
    sys.exit(load_entry_point('cloud-mdir-sync', 'console_scripts', 'cms-oauth')())
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/cloud_mdir_sync/cms_oauth_main.py", line 98, in main
    xoauth2_token = get_xoauth2_token(args)
  File "/home/ben/.mail/nvidia/cloud_mdir_sync/cloud_mdir_sync/cms_oauth_main.py", line 24, in get_xoauth2_token
    raise ValueError(f"Invalid CMS server response {ret!r}")
ValueError: Invalid CMS server response ''

The SMTP mode works with the same configuration:

ben@d3:~/.mail/nvidia/cloud_mdir_sync$ ./cms-oauth --user=bpoirier@nvidia.com --cms_sock=/var/run/user/1000/cms.sock --test-smtp=outlook.office365.com
send: 'ehlo [127.0.0.1]\r\n'

[...]

reply: b'235 2.7.0 Authentication successful\r\n'
reply: retcode (235); Msg: b'2.7.0 Authentication successful'

In the meantime, the output of cloud-mdir-sync does not hint at a problem:

03-03 14:30:25 DEBUG    Credential request 'IMAP' [] 'bpoirier@nvidia.com'
03-03 14:32:33 DEBUG    Credential request 'IMAP' [] 'bpoirier@nvidia.com'
03-03 14:34:26 DEBUG    Credential request 'SMTP' [] 'bpoirier@nvidia.com'
gobenji commented 2 years ago

My bad! I had mistakenly neglected to add protocols=["SMTP", "IMAP"] in the configuration (reference). After doing that change, cms-oauth works as expected.