IMAP XOAUTH2

2,068 views
Skip to first unread message

Yoshinari Nomura

unread,
Nov 25, 2020, 12:05:20 AM11/25/20
to mew...@googlegroups.com
ごぶさたしています.乃村です.

GMail IMAP で XOAUTH2 に対応するパッチを作りました
https://github.com/yoshinari-nomura/Mew/tree/mew-support-xoauth2

現在の本家の master から 1コミット積んでいる状態です.
Gmail それっぽく使えることは確認しましたが,他のサーバ相手に使えるか
どうかは分かりません.よかったら MS とかで試してみてください.

試すには OAuth 用の client id と secret id が必要です.
https://console.developers.google.com 参照.
.emacs に以下のような記述が必要です.

(setq mew-imap-oauth-client-id "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com"
mew-imap-oauth-client-secret "xxxxxxxxxxxxxxxxxxxxxxxx")

それと,これは僕の GPG の設定の問題だと思うのですが,何かする度に
毎回パスフレーズを聞かれます. 私の設定ではgpg-agent に保存している筈なのですが…
ちなみに Ubuntu 20.04 + Emacs 27.1 です.
--
nom

Yoshinari Nomura

unread,
Nov 25, 2020, 7:34:49 PM11/25/20
to mew...@googlegroups.com
乃村です.

これについて,
> それと,これは僕の GPG の設定の問題だと思うのですが,何かする度に毎回
> パスフレーズを聞かれます. 私の設定ではgpg-agent に保存している筈なの
> ですが… ちなみに Ubuntu 20.04 + Emacs 27.1 です.

結論からいうと,以下の設定でパスフレーズを Emacs 自身がキャッシュします.

(setq plstore-cache-passphrase-for-symmetric-encryption t)
(setq epg-pinentry-mode 'loopback)

oauth2.el, plstore.el, epg.el, gpg-agent の関係が分かっていませんでした.
今回の挙動を整理しておくと,

1) Mew が oauth2 を呼ぶことで毎回 token を保存する
(~/.emacs.d/oauth2.plstore に保存される)

現状の実装では token の expiration を見ないで,IMAP 操作毎
に ~/.emacs.d/oauth2.plstore への保存が発生する.

2) oauth2 → plstore → epg → gpg → gpg-agent で
gpg (が呼びだす pinentry) から新規パスフレーズを聞かれる.

このとき,gpg-agent がパスフレーズを保存してくれるので,
plstore から *読み出す* のはパスフレーズ不要.(のはず)

3) もう一度 IMAP 操作をして 1) を呼ぶと plstore が
~/.emacs.d/oauth2.plstore に *保存* しようとするので,

oauth2 → ... → gpg-agent の流れで, *新たなパスフレーズ*
を求められる.

保存においては,前のパスフレーズを使ってくれない.gpg-agent 的にはファ
イル名が同じでも別のオブジェクトとして扱うから?

4) 結果,inc する度に gpg-agent に新規パスフレーズを聞かれ続ける.

ということのようです.そこで,(setq epg-pinentry-mode 'loopback) とすると,
gpg が外部の pinentry を呼ばずに,Emacs に callback を返してくれるので,
その callback を plstore が実装していて,パスフレーズの入力とファイルパスベースの
パスフレーズキャッシュを内部に持つという仕組みです.

Emacs を再起動したら plstore のパスフレーズキャッシュはなくなります.
--
nom

Yoshinari Nomura

unread,
Nov 27, 2020, 7:42:47 AM11/27/20
to mew...@googlegroups.com
乃村です.

redirect-url を設定できるように修正して push -f しました.
https://github.com/yoshinari-nomura/Mew/tree/mew-support-xoauth2

僕は使えないのですが,MS Exchange Online だとこんな感じのようです.

;; client-id, client-secret は,portal.azure.com の Azure Active
;; Directory から取れるそうです

(setq mew-imap-oauth-client-id
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com")
(setq mew-imap-oauth-client-secret
"xxxxxxxxxxxxxxxxxxxxxxxx")

(setq mew-imap-oauth-auth-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize")
(setq mew-imap-oauth-token-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/token")
(setq mew-imap-oauth-resource-url "https://outlook.office.com/IMAP.AccessAsUser.All offline_access")
(setq mew-imap-oauth-redirect-url "https://login.microsoftonline.com/common/oauth2/nativeclient")

おかげさまで Gmail 以外でも使えることが分かりました.
--
nom

On Wed, 25 Nov 2020 14:05:17 +0900 (JST),
Yoshinari Nomura <n...@quickhack.net> said:

Yoshinari Nomura

unread,
Dec 27, 2020, 2:02:32 AM12/27/20
to mew...@googlegroups.com
乃村です.

特に反応もなく寂しいですが,めげずに IMAP/SMTP/POP を
XOAUTH2 対応させました.

https://github.com/yoshinari-nomura/Mew/tree/mew-support-xoauth2
(git push -f してます)
https://github.com/yoshinari-nomura/Mew/commit/003a17c6377a0079f081015f9ab9f71158f703a0

共通部分をくくり出して変数名等を付け替えたので,
これまでのコード用に .emacs を設定していた人は変更が必要です.

初回に mew-summary-retrieve (i) などすると,ブラウザが開いて
Gmail に飛ばされます.そこで OAuth の許可を与えると,トークン
文字列が表示されるので,Emacs の mini-buffer にコピペして下さい.

取得したトークンは,~/.emacs.d/oauth2.plstore に保存されます.
oauth2.plstore の新規パスフレーズを設定するように聞かれます.

1) Ubuntu, Gmail, SMTP/IMAP で動作確認しています.

2) oauth2.el を ELPA からインストールしておく必要があります.

3) OAuth の cliend-id and client-secret は自分で取得して .emacs に設定下さい.

(setq mew-auth-oauth-client-id "xxxxxxxxxapps.googleusercontent.com"
mew-auth-oauth-client-secret "xxxxxxxxxxxxxxxxxxxxxxxxxx"
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 以外の場合は,以下の変数をいじる必要があると思います.

(defvar mew-auth-oauth2-auth-url
"https://accounts.google.com/o/oauth2/auth"
"OAuth2 auth server URL.")

(defvar mew-auth-oauth2-token-url
"https://accounts.google.com/o/oauth2/token"
"OAuth2 token server URL.")

(defvar mew-auth-oauth2-resource-url
"https://mail.google.com/"
"URL used to request access to Mail Resources.")

(defvar mew-auth-oauth2-redirect-url nil
"URL used to OAuth redirect url.")

--
nom

Tatsuya Kinoshita

unread,
Dec 29, 2020, 9:34:19 PM12/29/20
to mew...@googlegroups.com, n...@quickhack.net
On 2020-12-27 at 16:02, Yoshinari Nomura wrote:
> 特に反応もなく寂しいですが,めげずに IMAP/SMTP/POP を
> XOAUTH2 対応させました.

動作は試せていませんが、対応環境はEmacs 27以降でしょうか。旧環境の
ために(fboundp 'json-parse-string)の判定を加えてはどうでしょうか。

--
木下達也

Kenichi Niioka

unread,
Dec 30, 2020, 7:38:55 AM12/30/20
to mew...@googlegroups.com, n...@quickhack.net
新岡と申します。

From: n...@quickhack.net
Subject: [mew-ja] IMAP/SMTP/POP XOAUTH2 (Re: IMAP XOAUTH2)
Date: Sun, 27 Dec 2020 16:02:27 +0900 (JST)

> 特に反応もなく寂しいですが,めげずに IMAP/SMTP/POP を
> XOAUTH2 対応させました.

ありがとうございます。
反応できなかったのは、https://console.developers.google.com/
設定に手間取ったからです。

Debian 10.7、Emacs 28.0.50、Gmail、SMTP/IMAP で動作確認
いたしました。

> 4) XOAUTH2 を優先するためには,mew-config-alist の設定が必要です.
>
> (setq mew-config-alist
> '(
> ("default"
> ; ...
> (smtp-auth-list '("XOAUTH2"))
> (pop-auth-list '("XOAUTH2"))
> (imap-auth-list '("XOAUTH2")))
> ; ...
> ))

わたしの環境では、"'" があるとうまく動きませんでした。

--
新岡

Tatsuya Kinoshita

unread,
Dec 31, 2020, 11:52:32 PM12/31/20
to mew...@googlegroups.com, n...@quickhack.net
On 2020-12-27 at 16:02, Yoshinari Nomura wrote:
> 4) XOAUTH2 を優先するためには,mew-config-alist の設定が必要です.
> (imap-auth-list '("XOAUTH2")))

> -(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN")
> +(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN" "XOAUTH2")

mew-imap-auth-listに"XOAUTH2"が含まれていると"PLAIN"相当の動作より
も優先されてしまいます。未設定の状態で"XOAUTH2"が使われないよう、
デフォルト値は元のままにしておいてはどうでしょうか。

--
木下達也

Yoshinari Nomura

unread,
Jan 5, 2021, 4:28:18 AM1/5/21
to mew...@googlegroups.com
あけましておめでとうございます.乃村です.

On Wed, 30 Dec 2020 11:33:15 +0900 (JST),
Tatsuya Kinoshita <ta...@vega.ocn.ne.jp> said:

>> XOAUTH2 対応させました.
>
> 動作は試せていませんが、対応環境はEmacs 27以降でしょうか。旧環境の
> ために(fboundp 'json-parse-string)の判定を加えてはどうでしょうか。

確かに.26 以下は,json-read-from-string を使うといいようです.
27 から入った json-parse-string (のスピード) を必要とする場面
でもないので,json-read-from-string で統一しようかと思います.

ありがとうございます.
--
nom

Yoshinari Nomura

unread,
Jan 11, 2021, 11:00:41 PM1/11/21
to mew...@googlegroups.com
乃村です.メール出て行ってなかった?

On Fri, 01 Jan 2021 13:52:01 +0900 (JST),
Tatsuya Kinoshita <ta...@vega.ocn.ne.jp> said:

>> -(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN")
>> +(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN" "XOAUTH2")
>
> mew-imap-auth-listに"XOAUTH2"が含まれていると"PLAIN"相当の動作より
> も優先されてしまいます。未設定の状態で"XOAUTH2"が使われないよう、
> デフォルト値は元のままにしておいてはどうでしょうか。

あれ.デバッグ過程で混乱してたのか,先頭から順番に使われていると
勘違いしてました.影響が大きいので,デフォルトから外すようにします.

ありがとうございました.
--
nom

Yoshinari Nomura

unread,
Jan 11, 2021, 11:01:12 PM1/11/21
to mew...@googlegroups.com
乃村です.

On Wed, 30 Dec 2020 21:36:19 +0900 (JST),
Kenichi Niioka (新岡賢一) <ck...@e23.jp> said:

> ありがとうございます。
> 反応できなかったのは、https://console.developers.google.com/
> 設定に手間取ったからです。
>
> Debian 10.7、Emacs 28.0.50、Gmail、SMTP/IMAP で動作確認
> いたしました。

ありがとうございます.

client-id と client-secret の取得は,悩ましい問題ですよね.
オープンソースな OAuth 使うアプリケーションって,どう扱う
のがいいのでしょう.

ソースコードに埋め込んであるのも時々見掛けます.rclone とか.

>> 4) XOAUTH2 を優先するためには,mew-config-alist の設定が必要です.
>>
>> (setq mew-config-alist
>> '(
>> ("default"
>> ; ...
>> (smtp-auth-list '("XOAUTH2"))
>> (pop-auth-list '("XOAUTH2"))
>> (imap-auth-list '("XOAUTH2")))
>> ; ...
>> ))
>
> わたしの環境では、"'" があるとうまく動きませんでした。

あ,すみません.おっしゃる通りです.
--
nom

Tatsuya Kinoshita

unread,
Jan 12, 2021, 5:13:58 AM1/12/21
to mew...@googlegroups.com
On 2021-01-12 at 13:00, Yoshinari Nomura wrote:
> >> +(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN" "XOAUTH2")
> > mew-imap-auth-listに"XOAUTH2"が含まれていると"PLAIN"相当の動作より
> > も優先されてしまいます。未設定の状態で"XOAUTH2"が使われないよう、
> > デフォルト値は元のままにしておいてはどうでしょうか。
>
> あれ.デバッグ過程で混乱してたのか,先頭から順番に使われていると
> 勘違いしてました.影響が大きいので,デフォルトから外すようにします.

ありがとうございます。先頭から順番に使われるのは間違いないのですが、
そこに書かれていない(書けない)"PLAIN"相当の動作よりも優先されてしまう、
という問題なのでした。

あとは、アカウント毎の設定のためにmew-auth-oauth2-auth-url等各変数の
config対応が必要になりそうです。

--
木下達也

Tatsuya Kinoshita

unread,
Feb 17, 2023, 9:38:06 PM2/17/23
to mew...@googlegroups.com
XOAUTH2マージに向けてissueにしておきました。

- https://github.com/kazu-yamamoto/Mew/issues/172

参考までに、手元では都度最新版でrebase, force pushしています。

- https://github.com/tats/Mew/tree/feature/xoauth2

--
木下達也

Yoshinari Nomura

unread,
Feb 17, 2023, 10:47:35 PM2/17/23
to ta...@vega.ocn.ne.jp, mew...@googlegroups.com
乃村です.

木下さん,綺麗にまとめていただいてありがとうございます.

> 参考までに、手元では都度最新版でrebase, force pushしています。
>
> - https://github.com/tats/Mew/tree/feature/xoauth2

提示いただいているブランチが僕のやりたい事まんまなので,
よろしければ,kazu-yamamoto/Mew に PR 出していただけません
でしょうか.

不精してすみません.

山本さん,上記ブランチをマージしても XOAuth を陽に設定しない限り
現ユーザに影響を与えないと思いますので (木下さん,間違っていたら
御指摘下さい) ,一旦マージいただいてよろしいでしょうか.

https://github.com/kazu-yamamoto/Mew/issues/172 の上3つまでが
完了となる認識です.

+ Add XOAUTH2 support, merge from https://github.com/yoshinari-nomura/Mew/tree/mew-support-xoauth2
+ Use json-read-from-string instead of json-parse-string for Emacs 26
+ Disable XOAUTH2 by default, especially to use IMAP PLAIN
+ Support mew-config-alist to use XOAUTH2 for each servers
+ Update documentation for XOAUTH2 in info/mew.texi

この件で,思い出しました.もう1つ気になってることがあります.
それは,Gmail が OAuth の認可フローで OOB フローを禁止したことです.

このおかげで,おそらく現状の oauth2.el では,新規にトークンを
取得できない気がします (よく調べていません).

この問題を回避する天才を発見しましたが,
https://stackoverflow.com/questions/71318804/google-oauth-2-0-failing-with-error-400-invalid-request-for-some-client-id-but/71331562#71331562
まっとうにやるなら,POST を受け取る Web サーバが Mew 内に必要だと思います.
--
------------------------------------------------
乃村 能成 (Yoshinari Nomura)
岡山大学 学術研究院 自然科学学域 (工学部 情報工学)
〒700-8530 岡山市北区津島中3-1-1
Mail: n...@okayama-u.ac.jp Phone: 086-251-8188
------------------------------------------------

Tatsuya Kinoshita

unread,
Feb 18, 2023, 12:09:46 AM2/18/23
to mew...@googlegroups.com, n...@quickhack.net
On 2023-02-18 at 12:47, Yoshinari Nomura wrote:
> > - https://github.com/tats/Mew/tree/feature/xoauth2
>
> 提示いただいているブランチが僕のやりたい事まんまなので,
> よろしければ,kazu-yamamoto/Mew に PR 出していただけません
> でしょうか.

そのままpull requestにしました。

- https://github.com/kazu-yamamoto/Mew/pull/173

--
木下達也

Yoshinari Nomura

unread,
Feb 20, 2023, 3:00:21 AM2/20/23
to ta...@vega.ocn.ne.jp, mew...@googlegroups.com
乃村です.

木下さん,ありがとうございます.

山本さん,私の不手際と不精でちょっと面倒な状態に
になってすみません.さしつかえなければ,一旦マージ
していただいて,私から修正の PR を再度出すのは
いかがでしょうか.
https://github.com/kazu-yamamoto/Mew/pull/173

Tatsuya Kinoshita

unread,
Feb 22, 2023, 7:20:26 AM2/22/23
to mew...@googlegroups.com
On 2023-02-18 at 11:36, Tatsuya Kinoshita wrote:
> - https://github.com/tats/Mew/tree/feature/xoauth2

masterにマージされた上記ブランチは削除しましたが、Mew 6.9向けの
XOAUTH2対応はしばらく残しておきます。

- https://github.com/tats/Mew/tree/feature/v6.9-xoauth2

--
木下達也

Yoshinari Nomura

unread,
Feb 13, 2024, 6:08:45 AMFeb 13
to mew...@googlegroups.com
ごぶさたしています.乃村です.

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 は自分で取得して設定下さい.

(setq mew-auth-oauth-client-id "xxxxxxxxxapps.googleusercontent.com"
mew-auth-oauth-client-secret "xxxxxxxxxxxxxxxxxxxxxxxxxx"
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 の形をしていますが,他のサービスでは
その限りではないと思います.

(defvar mew-auth-oauth2-auth-url
"https://accounts.google.com/o/oauth2/auth"
"OAuth2 auth server URL.")

(defvar mew-auth-oauth2-token-url
"https://accounts.google.com/o/oauth2/token"
"OAuth2 token server URL.")

(defvar mew-auth-oauth2-resource-url
"https://mail.google.com/"
"URL used to request access to Mail Resources.")

(defvar mew-auth-oauth2-redirect-url nil
"URL used to OAuth redirect 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:

Kazu Yamamoto

unread,
Mar 5, 2024, 11:42:47 PMMar 5
to n...@quickhack.net, mew...@googlegroups.com
山本です。

これをマージしたら version 6.10 を出しますので、pull req をください。

--
山本和彦

Masamichi Hosoda

unread,
Mar 6, 2024, 1:25:19 AMMar 6
to n...@quickhack.net, mew...@googlegroups.com, true...@trueroad.jp
乃村様、皆様

細田です。

下記メールを数日前に出したつもりだったのですが、
届いていなかったことに気が付いたので再送します。

XOAUTH2 対応、使わせていただきました。
複数の Gmail アカウントで動作させることができました。
ありがとうございます。

> 3) OAuth の cliend-id and client-secret は自分で取得して設定下さい.
>
> (setq mew-auth-oauth-client-id "xxxxxxxxxapps.googleusercontent.com"
> mew-auth-oauth-client-secret "xxxxxxxxxxxxxxxxxxxxxxxxxx"
> mew-auth-oauth2-redirect-url "http://localhost:8080"
> plstore-cache-passphrase-for-symmetric-encryption t
> epg-pinentry-mode 'loopback)

mew-auth-oauth-client-id
mew-auth-oauth-client-secret

mew-auth-oauth2-client-id
mew-auth-oauth2-client-secret
の間違いでしょうか。
(oauth ではなくて oauth2)

> cilent-id や client-secret を mew-config-alist に直接書くのは,
> 安直過ぎるかなと思っていますが,どうでしょうか.

やっぱり安直かもしれませんが、
auth-oauth2-auth-url
auth-oauth2-token-url
auth-oauth2-resource-url
auth-oauth2-redirect-url
auth-oauth2-client-id
は mew-config-alist に書くようにして
auth-oauth2-client-secret
だけ別の変数に書くようにすれば多少はマシになるかなとは思いました。

あとは 1 つの mew-config-alist のケース内でも IMAP/POP/SMTP で
それぞれ別々の OAuth プロバイダを設定できるようにしたい、
とかがあれば例えば以下のような感じで設定できるようにするといいかなと
思いました。

(setq mew-config-alist
'(
(default
; ...
(smtp-auth-oauth foo)
(pop-auth-oauth bar)
(imap-auth-oauth baz)
; ...
)))
(setq mew-auth-oauth2-config-alist
'(
(foo
(auth-url "https://accounts.google.com/o/oauth2/auth")
(token-url "https://accounts.google.com/o/oauth2/token")
(resource-url "https://mail.google.com/")
(redirect-url nil)
(client-id "xxxx"))
(bar
(auth-url "xxx")
(token-url "xxx")
(resource-url "xxx")
(redirect-url "http://localhost:8080")
(client-id "xxxx"))
(baz
; ...
)))
(setq mew-auth-oauth2-client-secret-alist
'(
(foo "xxxx")
(bar "xxxx")
(baz "xxxx")))
---
細田 真道 <true...@trueroad.jp>

Yoshinari Nomura

unread,
Mar 11, 2024, 7:55:32 AMMar 11
to mew...@googlegroups.com
乃村です.すみません.メール気付けていませんでした.

> 山本です。
>
> これをマージしたら version 6.10 を出しますので、pull req をください。

ありがとうございます.PR 出しました.
https://github.com/kazu-yamamoto/Mew/pull/191

--
nom

Yoshinari Nomura

unread,
Mar 11, 2024, 8:08:25 AMMar 11
to mew...@googlegroups.com
乃村です.

手元に細田さんの元のメールがなくて,Web からコピペして引用しています.
おかしなスレッドになってますが,すみません.

> 細田です。
:
> mew-auth-oauth-client-id
> mew-auth-oauth-client-secret
> は
> mew-auth-oauth2-client-id
> mew-auth-oauth2-client-secret
> の間違いでしょうか。
> (oauth ではなくて oauth2)

失礼しました.その通りです.

> auth-oauth2-auth-url
> auth-oauth2-token-url
> auth-oauth2-resource-url
> auth-oauth2-redirect-url
> auth-oauth2-client-id
> は mew-config-alist に書くようにして
> auth-oauth2-client-secret
> だけ別の変数に書くようにすれば多少はマシになるかなとは思いました。

なるほど.client-secret だけ別に置くのはアリですね.

> あとは 1 つの mew-config-alist のケース内でも IMAP/POP/SMTP で
> それぞれ別々の OAuth プロバイダを設定できるようにしたい、

もっと言うと,SMTP と IMAP でプロバイダを変えたいとかあるかもしれませんね.
GMail で読むけど,Submission は,O365 とかいう.

--
nom
Reply all
Reply to author
Forward
0 new messages