mbsync
Ubuntu에서 xoauth2 플러그인을 찾을 수 없기 때문에 Gmail에서 OAuth를 사용하는 방법을 알 수 없는 것 같습니다 mbsync
. OAuth에 대해 구성된 모든 것이 제대로 작동한다고 sasl
확신합니다 mbsync
(예: PassCmd가 액세스 토큰을 성공적으로 생성하는지 수동으로 테스트).
편집 : sasl-bin
apt를 통해 설치했으며https://github.com/robn/sasl2-oauth소스에서.
질문
sasl
플러그인을 수동으로 "등록"하려면 어떻게 해야 합니까mbsync
? (일명 아래에 붙여넣은 첫 번째 로그의 "사용 가능한" SASL 메커니즘 목록에 추가)- 이 문제는 내 "이메일 스택"의 다른 구성 요소로 인해 발생합니까? 내가 읽은 일부 스레드에서는 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에서 실행하는 방법은 다음과 같습니다.
사이러스 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/설치하다. 다음으로 다음 플러그인 중 하나를 사용하세요.
도움이 되길 바랍니다. 나는 이 일을 해낼 수 있는지 계속해서 노력할 것이다.