コンテンツにスキップ

このWebサイトは、管理人が個人的に書き留めている備忘録です。それ以上でもそれ以下でもありません。
誤記・誤解・誤謬を含め、記述内容の確度を一切保証しません。責任を負いません。問い合わせ等を受け付けません。
This Mediawiki is a personal memorandum written by Administrator, nothing more, nothing less.
Administrator do NOT guarantee accuracy of content, including any errors, misunderstandings, fallacies, take NO responsibility, do NOT accept inquiries anything of the sort.

「GNU EmacsとWanderlustでOAuth2を使用してGmailを送受信する」の版間の差分

提供: Memorandum
編集の要約なし
 
(相違点なし)

2025年4月20日 (日) 10:51時点における最新版

メインページ > Debian GNU/Linux Customize Tips > GNU EmacsとWanderlustでOAuth2を使用してGmailを送受信する

メーラ(MUA)を使用してGmailを送受信する際のユーザ認証にOAuth2が強制されるようになって久しい。これは、GNU EmacsWanderlustの組み合わせでGmailをOAuth2認証で送受信するには、何をどう設定すべきか、というメモ。

なお、管理人のPC環境から、OSはDebian、Emacsとそれに付随するelispパッケージはDebian公式リポジトリやMELPAリポジトリにアップロードされているものに限定する。再インストール時などに再現性が悪いからだ。

前提条件

  1. Googlaが公開している手順に従い、送受信したいGmailアカウントのclient IDとclient secretを取得・有効化し、別途メモする。
  2. EmacsでMELPAリポジトリが使用できるよう~/.emacs.elに必要な行を追加する。
  3. GmailではSMTP送信文を暗号化するSTARTTLSを採用しているので、EmaceとWanderlustからgnutls-binを使用できるようインストールと設定をする。

設定手順

  1. Debian公式リポジトリからWanderlustと必要なelispパッケージをインストールする。
    Wanderlustと必要なelispパッケージはMELPAリポジトリからもインストールできるが、MELPAリポジトリからインストールするとOAuth2が機能しないので要注意。機能しない理由は不明。
    ここでWanderlust本体であるwlと、これに必要なapel, flim, semiの3個のelispパッケージが同時にインストールされる。
  2. MELPAリポジトリからauth-source-xoauth2, oauth, oauth2-auto, oauth2-request, url-http-oauthの5個のelispパッケージをインストールする。
    このとき、aio, alert, dash, oauth2, requestの5個のelispパッケージがdependencyとして使用可能であることを確認する。
  3. ~/.wlに、OAuth2認証を有効とする(auth-source-xoauth2-enable)という行を追加後、Wanderlustのマニュアルに従って、先述の前提条件でメモしたclient IDとclient secretを追加する。
  4. WanderlustでGmailアカウントの認証手段にxoauth2と指定する。
    たとえば、IMAP受信メールボックスでは~/.folders%INBOX:"xxxxx@gmail.com"/xoauth2@imap.gmail.com:993!と設定する。
    SMTP送信認証では~/.wl(wl-smtp-authenticate-type . "xoauth2")と設定する。


以降は、他のメールアカウントと同様に送受信できる。

なお、設定後に初めてGmailアカウントでSMTP/IMAPアクセスすると「アクセストークン受け入れ処理」が走り、そのPCのデフォルトWebブラウザにリダイレクトされるので、遷移後の画面に表示される手順に従いアクセストークンをactivateする必要がある。また、このアクセストークンは受け入れ後7日(604,800秒)でexpireして使用不可となり、結果としてGmailが送受信できなくなるので、そのときは~/.emacs.d/sasl-xoauth2/に保存されている送信用と受信用の2個のアクセストークン(拡張子は.plstore)を手動で削除し、再度、アクセストークン受け入れ処理をやり直す必要がある。