$Keywords: mnews mnews122PL5.tar.gz Google GMail OAuth2
$Id: index.html,v 1.2 2022-05-04 20:25:54+09 kabe Exp $
mnewsはもう公式には配布されなくなってしまったので、 ソースコードは入手困難です。 当方もオリジナルの tar.gz は紛失してしまったので、 CVSに残っていたものをexportしたものを置いておきます。
mnews は最終的には1.22PL6, 1.22PL7 まで出ましたが、 IPv6対応が中途半端で終わってしまっているので、 当方ではPL5ベースで改造を行っています。あまり使われない英語版のメッセージを校正したものです。 動作には影響なし。 コンパイル時に -DLOCK_LANGUAGE を追加することで、 [x]キーでの言語切替を無効にすることができます。英語圏への輸出用。
遠隔にあるニュースサーバ、POP3サーバでの使い勝手を向上させたものです。 その他の改良も同梱。
mnewsは SSL には対応していないので、SMTPs, POPs でしかサービスを 行っていないメールサーバ (GMailなど) では、stunnel(1) を経由させて 使います。
#!/usr/local/sbin/stunnel # ~/lib/stunnel.conf #syslog = yes debug = daemon.notice pid = /home/user/var/stunnel.pid client = yes foreground = no [google_POPs] accept = localhost:10110 #libwrap = no connect = googlemail-pop.l.google.com:995 [google_IMAPs] accept = localhost:10143 #libwrap = no connect = googlemail-imap.l.google.com:993
上のような stunnel.conf を用意し、 stunnel stunnel.conf でstunnelを起動した後、 mnews -Plocalhost:10110 とすれば POP3s のサーバーに接続できます。
oauth2
GMail では、2021/02/16以降、「安全性の低いアプリへの接続」 (Less Secure Apps, LSA)での接続が 出来なくなります ので、SMTPsやPOP3s、IMAPsでの認証は PLAIN 認証が使えなくなり、 OAuth2 認証を使わざるを得なくなります。
mnews単独ではOAuth2に対応させるのはかなり難しい (httplibを持っていない、GUIブラウザを自動起動するすべを持っていない、など) ので、 OAuth2の「アクセストークン」を生成する外部アプリケーション経由で OAuth2対応にしてみました。
Visit the Google API Console open_in_new to obtain OAuth 2.0 credentials such as a client ID and client secretの部分です。 GoogleのGUIは変わる可能性が高いので、この INSTALL.txt は 早晩その通りには行かなくなるかもしれません。
クライアントID, クライアントシークレットが準備できたら、 ./client-id.dat.tcl に書き込みます。
4/...
で始まる authorization code が表示されます。
authorization code の受け取りは http://127.0.0.1:8033 にて 受信するので、ブラウザ稼働機と ./oauth2 を行っているマシンが 違う場合は、適宜 ssh のトンネルを掘っておいてください。すぐに./oauth refresh を入力し、 最初のアクセストークンをもらいます。
ya29...
といった
アクセストークンが再度もらえることを確認します。
ここまでできたら、
env POP3USER=user@example.com POP3_OAUTH2_CMD="./oauth2 -q refresh" mnews -Plocalhost:10110でメールを取り込んでみます。 ユーザ名やパスワードは聞かれません。