gmail

130 views
Skip to first unread message

Kazu Yamamoto

unread,
Apr 29, 2024, 8:08:01 PMApr 29
to mew...@googlegroups.com
山本です。

一晩寝かしてうまく動いているのと、説明に不備があったので、もう一度
全部描きます。

乃村さんの XOAuth2 を元に、gmail 用の XOAuth2 を乃村さんとやりとりしな
がらサポートしました。github の master を pull していただければ、利用
できます。外部パッケージは不要です。

Google cloud に Mew を Public client として登録する方法が分からないので、
自分で認証/認可の設定をして、client_id と clinet_secret を発行してもらい
mew-oauth2-client-id
mew-oauth2-client-secret
を設定する必要があります。

access_token などは、Mew のマスターパスワードの仕組みを通じて保存され
ます。

Google cloud の設定ですが、僕は
https://engineer-daily.com/mamp-php-mailergmail/
を参考にしました。

ただし、アプリケーションの種類は「ウェブアプリケーション」ではなく「デ
スクトップ」にする必要があります。そうしないと、refresh_token が発行さ
れません。

リダイレクトURLには、
http://localhost:8080
を指定してください。

あと、このページに書いてないと思いますが、
https://console.cloud.google.com/getting-started?hl=ja
にアクセスし、「有効なAPIとサービス」に「Gmail API」が無ければ、
追加してください。

一応、エラー処理もやったので、かなりストレスなく使えるとは思います。

google cloudにMewをPublic clientとして登録する方法が分かれば、以上の煩
わしい作業はなくなるはずなんですが、今後頑張って探せるかは分かりませ
ん。。。

--
山本和彦


Yoshinari Nomura

unread,
Apr 29, 2024, 11:39:12 PMApr 29
to mew...@googlegroups.com
乃村です.

送信テストがてら,これまでの設定との差分を補足します.
これまでは↓でしたが,

(require 'oauth2)
(setq mew-auth-oauth2-client-id "…"
mew-auth-oauth2-client-secret "…"
mew-auth-oauth2-redirect-url "http://localhost:8080"
plstore-cache-passphrase-for-symmetric-encryption t
epg-pinentry-mode 'loopback)

こう変わります↓

(setq mew-oauth2-client-secret "…"
mew-oauth2-client-id "…"
mew-use-master-passwd t)

mew-oauth2-redirect-url はデフォルトで
"http://localhost:8080" です.
環境によっては,変更が必要になるかもしれません.

トークンの保存には,これまで oauth2.el (egp.el) を
使っていましたが,Mew の master password を使う
ように変更されました.保存場所は,~/Mail/.mew-passwd.gpg
がデフォルトです.

また,トークンは,SMTP と IMAP で,同じプロバイダでも
区別されます.それぞれ認可のプロセスが走ると思います.

以前動作確認いただいていた MS365 で動くかどうかは分かりません.
public client を実装して MS に認証(?) してもらわないといけない
気もします.
--
nom

Yoshiaki Kasahara

unread,
Apr 30, 2024, 2:49:15 AMApr 30
to mew...@googlegroups.com
宛先を間違えたので再送します。すみません。

笠原です。

MS365 で送信できなかったので報告します。乃村さんの版では使えていました。
MSへのアプリの登録は自前でやっています。

Mew 側の設定は以下です。

(setq mew-oauth2-client-id "..."
mew-oauth2-client-secret (url-hexify-string "...")
mew-oauth2-auth-url
"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize"
mew-oauth2-token-url
"https://login.microsoftonline.com/organizations/oauth2/v2.0/token"
mew-oauth2-resource-url
"https://outlook.office.com/IMAP.AccessAsUser.All
https://outlook.office.com/SMTP.Send offline_access"
)

これでブラウザが起動してサインインして "Mew gets the following authorization code: " の画面は出るのですが、
Mew 側は "SMTP XOAUTH2 password is wrong! This mail has been queued to
+queue" で送信失敗します。
*Mew debug* で見た感じトークン自体は何かしら取得して AUTH XOAUTH2 で送っているっぽいのですが。

アプリ登録は Entra ID にアプリを登録できる権限があるテナントを持っていればできそうな気がします。

https://learn.microsoft.com/ja-jp/entra/identity-platform/quickstart-register-app

2024年4月30日(火) 12:39 Yoshinari Nomura <n...@quickhack.net>:
--
笠原 義晃

Yoshiaki Kasahara

unread,
Apr 30, 2024, 6:16:56 AMApr 30
to mew...@googlegroups.com
笠原です。

申し訳ありません、こちら最新のコミットが手元に反映されておらずSMTPだけ動作不良になっていました。

再度更新した所問題なく送信できるようになりました。お騒がせしました。

2024年4月30日(火) 15:48 Yoshiaki Kasahara <yka...@gmail.com>:
--
笠原 義晃
Reply all
Reply to author
Forward
0 new messages