ごぶさたしています.乃村です.
XOAUTH2 対応について,いくつか改良しました.
https://github.com/yoshinari-nomura/Mew/tree/oauth-with-builtin-http-server
* 改良点
1) Emacs に Web サーバをさせることでリダイレクトに対応
これは Gmail が OOB を止めたことへの対応です.
(setq mew-auth-oauth2-redirect-url "
http://localhost:8080")
などとしてください (default は nil: OOB).
おかげでブラウザからの code コピペがが不要に
なりました.minibuffer に直に挿入されます.
2) 複数の Gmail アカウントに対応
oauth2.el は,token 保存の key としてOAuth プロバイダの一意性を
使っています.これにはアカウント要素が含まれていないので,同じプ
ロバイダの別アカウントを保存できません.
今回,保存の部分を独自で実装して複数アカウントに対応しました.
設定変更は不要ですが key が変わるので再度認証を要求されます.
以下は,はじめて利用する人のための設定手引です.
mew-auth-oauth2-redirect-url 以外は既存の設定と変わりません.
* 設定の手引
1) Ubuntu, Gmail, SMTP/IMAP, Emacs 29.2 で動作確認しています.
2) oauth2.el を ELPA からインストールしておく必要があります.
3) OAuth の cliend-id and client-secret は自分で取得して設定下さい.
mew-auth-oauth2-redirect-url "
http://localhost:8080"
plstore-cache-passphrase-for-symmetric-encryption t
epg-pinentry-mode 'loopback)
4) XOAUTH2 を優先するためには,mew-config-alist の設定が必要です.
(setq mew-config-alist
'(
("default"
; ...
(smtp-auth-list ("XOAUTH2"))
(pop-auth-list ("XOAUTH2"))
(imap-auth-list ("XOAUTH2")))
; ...
))
5) Gmail 以外の場合は,以下の変数もいじる必要があると思います.
mew-auth-oauth2-resource-url は,スコープのことです.
Gmail では,たまたま URL の形をしていますが,他のサービスでは
その限りではないと思います.
If nil, OOB is used.")
残された課題としては,ドキュメントを書く必要があるのと,
defvar している部分を mew-config-alist で指定できるようにすることです.
cilent-id や client-secret を mew-config-alist に直接書くのは,
安直過ぎるかなと思っていますが,どうでしょうか.
--
nom
On Wed, 25 Nov 2020 14:05:17 +0900 (JST),
Yoshinari Nomura <
n...@quickhack.net> said: