neomutt oauth 停止工作

neomutt oauth 停止工作

从上周开始,oauth2 就停止工作了。它之前就发生过一段时间并神秘地自行愈合,我很想知道这里发生了什么。我安装了 Thunderbird 以供参考,它正在工作 - 使用 oauth2 可以接收和发送电子邮件。

我有一个 MS Office 帐户并配置了身份验证mutt_oauth2.py脚本链接在文档按照中概述的步骤自述文件

手动运行脚本会生成一个令牌。测试表明,imap 和 smtp 通信基本正常(脚本如果我是正确的,似乎登录成功)。

/home/me/bin/mutt_oauth2.py /home/me/.neomutt/token --provider microsoft --verbose --test
[…]
IMAP authentication succeeded
POP authentication succeeded
SMTP authentication succeeded

neomutt 也在工作,但几天前就停止了。日志告诉我们

[2023-06-18 10:35:17]<2> mutt_socket_write_d() 4> c0000 CAPABILITY
[2023-06-18 10:35:17]<5> mutt_socket_readln_d() 4< * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
[2023-06-18 10:35:17]<3> cmd_parse_capability() Handling CAPABILITY
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "IMAP4": 0
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "IMAP4rev1": 1
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "AUTH=XOAUTH2": 9
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "SASL-IR": 13
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "IDLE": 12
[2023-06-18 10:35:17]<3> cmd_parse_capability()  Found capability "NAMESPACE": 4
[2023-06-18 10:35:17]<5> mutt_socket_readln_d() 4< c0000 OK CAPABILITY completed.
[2023-06-18 10:35:17]<3> imap_cmd_step() IMAP queue drained
[2023-06-18 10:35:17]<2> imap_authenticate() Trying user-defined imap_authenticators
[2023-06-18 10:35:17]<2> imap_authenticate() Trying method oauthbearer
[2023-06-18 10:35:17]<2> mutt_sasl_client_new() SASL local ip: 2001:db8::1;38986, remote ip:2001:db8::2;993
[2023-06-18 10:35:17]<2> mutt_sasl_client_new() External SSF: 256
[2023-06-18 10:35:17]<2> mutt_sasl_cb_log() SASL: No worthy mechs found
[2023-06-18 10:35:17]<2> imap_auth_sasl() oauthbearer unavailable
[2023-06-18 10:35:17]<2> imap_authenticate() Trying method xoauth2
[2023-06-18 10:35:17]<M> imap_auth_oauth_xoauth2() Authenticating (XOAUTH2)...
[2023-06-18 10:35:17]<5> msgwin_recalc() recalc done, request WA_REPAINT
[2023-06-18 10:35:17]<5> msgwin_repaint() repaint done
[2023-06-18 10:35:17]<5> ibar_recalc() recalc done, request WA_REPAINT
[2023-06-18 10:35:17]<5> helpbar_repaint() repaint done
[2023-06-18 10:35:17]<5> menu_repaint() repaint done
[2023-06-18 10:35:17]<5> ibar_repaint() repaint done
[2023-06-18 10:35:17]<E> mutt_account_getoauthbearer() OAUTH token is too big: 2304
[2023-06-18 10:35:17]<5> msgwin_recalc() recalc done, request WA_REPAINT
[2023-06-18 10:35:17]<5> msgwin_repaint() repaint done
[2023-06-18 10:35:17]<2> mutt_sasl_client_new() SASL local ip: 2001:db8::1;38986, remote ip:2001:db8::2;993
[2023-06-18 10:35:17]<2> mutt_sasl_client_new() External SSF: 256
[2023-06-18 10:35:17]<2> mutt_sasl_client_new() External authentication name: [email protected]
[2023-06-18 10:35:17]<2> mutt_sasl_cb_authname() getting authname for outlook.office365.com:993
[2023-06-18 10:35:17]<2> imap_auth_sasl() xoauth2 unavailable
[2023-06-18 10:35:17]<E> imap_authenticate() No authenticators available or wrong credentials

  • libsasl2相关软件包最近一次更新是在三月份,所以没有变化。
  • 我的 neomutt 配置或密码中都没有。
  • OAUTH token is too big: 2304消息是已知的,并且过去没有造成任何影响。

有关如何进一步调试此问题以及如何处理的任何提示?

答案1

我有一个相同的设置neomuttmutt_oauth2.py以及一个 Microsoft 帐户。今天注意到完全相同的问题,然后升级到最新版本neomutt(版本20230517)。这解决了问题。

要升级到最新版本,您可能必须neomutt从源代码构建; Unix/Linux 发行版倾向于打包较旧的版本。

答案2

谢谢@yb1。对于 Ubuntu 22.04,可以在下面找到说明。我从存储库中查看了安装,以获取有关要设置哪些选项的提示。

我使用 Docker 容器来保持系统干净。下载后来源cd-ing 进入我运行的膨胀文件夹

docker run --rm -it -v $PWD:/wrk ubuntu

cd /wrk
apt update
apt install build-essential gettext libncursesw5-dev pkg-config libidn2-dev libgpgme-dev libsasl2-dev liblua5.4-dev libnotmuch-dev libsqlite3-dev libgnutls28-dev libtokyocabinet-dev libkrb5-dev

./configure --build=x86_64-linux-gnu --prefix=/usr {--includedir=${prefix}/include} {--mandir=${prefix}/share/man} {--infodir=${prefix}/share/info} --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules {--libdir=${prefix}/lib/x86_64-linux-gnu} --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --mandir=/usr/share/man --libexecdir=/usr/libexec --with-mailpath=/var/mail --gpgme --lua --notmuch  --gnutls --gss  --mixmaster --sasl --tokyocabinet --sqlite --autocrypt --disable-doc
make

相关内容