mbsync
Ubuntuでxoauth2プラグインが見つからないため、GmailでOAuthを使用する方法がわからないようですmbsync
。 OAuth用に設定されたすべてが正常に動作すると確信sasl
していますmbsync
(たとえば、PassCmdがアクセストークンを正常に生成したかどうかを手動でテストします)。
編集:sasl-bin
apt経由でインストールしましたhttps://github.com/robn/sasl2-oauthソースから。
質問
sasl
プラグインを手動で「登録」するにはどうすればよいですかmbsync
? (別名で貼り付けた最初のログの「利用可能な」SASLメカニズムのリストに追加)- この問題は私の「Eメールスタック」の他のコンポーネントによって引き起こされますか?私が読んだいくつかのスレッドでは、muttをソースから再コンパイルすることを提案していますが、なぜmuttが認証の問題を引き起こすのか理解できません。
mbsync
install viaを使用してnix-env
渡すことはできません。
C: 0/1 B: 0/0 M: +0/0 *0/0 #0/0 S: +0/0 *0/0 #0/0
IMAP error: selected SASL mechanism(s) not available;
selected: XOAUTH2
available: GS2-IAKERB GS2-KRB5 SCRAM-SHA-1 SCRAM-SHA-256 GSS-SPNEGO GSSAPI DIGEST-MD5 EXTERNAL OTP CRAM-MD5 PLAIN LOGIN ANONYMOUS
C: 1/1 B: 0/0 M: +0/0 *0/0 #0/0 S: +0/0 *0/0 #0/0
私もmbsync/isync
aptで再インストールし、ソースisync
からビルドしようとしました。両方とも次のエラーが発生します。
Notice: Master/Slave are deprecated; use Far/Near instead.
C: 0/1 B: 0/0 F: +0/0 *0/0 #0/0 N: +0/0 *0/0 #0/0
Error: SASL(-1): generic failure: Unable to find a callback: 32775
C: 1/1 B: 0/0 F: +0/0 *0/0 #0/0 N: +0/0 *0/0 #0/0
答え1
前のヒントありがとうございます。 SASLでXOAUTH2を操作し、mbsyncで使用できました。 Ubuntu 20.10で実行する方法は次のとおりです。
Cyrus SASL OAuth2のインストール
# Clone the Cyrus SASL OAuth2 sources.
git clone https://github.com/moriyoshi/cyrus-sasl-xoauth2.git
# Configure and make.
cd cyrus-sasl-xoauth2
./autogen.sh
./configure
# SASL2 libraries on Ubuntu are in /usr/lib/x86_64-linux-gnu/; modify the Makefile accordingly
sed -i 's%pkglibdir = ${CYRUS_SASL_PREFIX}/lib/sasl2%pkglibdir = ${CYRUS_SASL_PREFIX}/lib/x86_64-linux-gnu/sasl2%' Makefile
make
sudo make install
# Verify XOAUTH2 is known to SASL.
saslpluginviewer | grep XOAUTH2
MB同期
以前のバージョン(1.3.1?まで)はPassCmdバッファを80に設定していました。これはOAuth2トークンには十分ではありません。現在1.4.0をコンパイルしています。
# Clone the isync/mbsync 1.4 sources.
git clone --branch 1.4 --depth 1 https://git.code.sf.net/p/isync/isync isync-isync
# Configure and make.
cd isync-isync
./autogen.sh
./configure
make
mutt_oauth2.py
以下からmutt_oauth2.pyをダウンロードしてください。https://gitlab.com/muttmua/mutt/-/blob/master/contrib/mutt_oauth2.pyそして実行可能にしてください。
OAuth2トークンを使用してソケットを生成する修正版があります。これにより、ソケットを介してトークンにアクセスできます。
curl --unix-socket ~/.mutt/oauth2.socket x
マイルは異なる場合があり、OAuth2 トークンにアクセスするには別の PassCmd が必要です。
mbsyncrc
XOAUTH2を使用するようにmbsyncを設定し、PassCmdを設定します。上記のカールコマンドを実行します。
IMAPAccount <account-name>
Host outlook.office365.com
User <[email protected]>
AuthMechs XOAUTH2
PassCmd "curl --unix-socket ~/.mutt/oauth2.socket x"
SSLType IMAPS
SSLVersions TLSv1.1 TLSv1.2
これにより、mbsyncが期待どおりに機能します。以下のカールの出力を参照してください。
$ mbsync -a
C: 0/1 B: 0/0 F: +0/0 *0/0 #0/0 N: +0/0 *0/0 #0/0 % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1963 0 1963 0 0 479k 0 --:--:-- --:--:-- --:--:-- 479k
C: 1/1 B: 15/15 F: +0/0 *0/0 #0/0 N: +847/847 *0/0 #0/0
答え2
Ubuntu 22.10にインストールすると、libsasl2-modules-kdexoauth2
「IMAPエラー:選択したSASLメカニズムは使用できません」問題が解決しました。
答え3
私も同じ問題で苦労しています。以下は、役に立ついくつかのリソースです。
- https://bbs.archlinux.org/viewtopic.php?id=238727
- https://isync-devel.narkive.com/i6h4k9hB/mbsync-xoauth2-and-gmail
- http://blog.onodera.asia/2020/06/how-to-use-google-g-suite-oauth2-with.html
エラーを正常に修正できませんでしたが、必要なようです。https://www.cyrusimap.org/sasl/インストールする。次に、次のプラグインのいずれかを使用してください。
お役に立てば幸いです。私はこの仕事をすることができるかどうか努力し続けます。