BLOGTIMES
2021/08/01

CentOS 7 に OAuth2 対応の fetchmail7 を入れる

  office365  oauth2  centos7 
このエントリーをはてなブックマークに追加

コマンドラインから使える POP3/IMAP クライアントで OAuth2 に対応しているのは fetchmail の次期バージョンである 7.x 系(まだ alpha 版)のみのようです。alpha 版でしかもビルド済みのバイナリがないとなると、ちょっと気が引けますが Google や M365 (Exchange Online) から OAuth2 でメールを取得するためには仕方ありません。

ソースからビルドすることにします。

OpenSSL も 1.1 系が必要

fetchmail7 をビルドするためには、各種ビルドツールに加えて OpenSSL 1.1 系をソースからコンパイルしてインストールしておく必要があります。これは、CentOS 7.x 系の OpenSSL の標準が 1.0 系のためです。具体的には以下のような感じでしょうか。

wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar zxvf openssl-1.1.1k.tar.gz ./config --prefix=/usr/local/openssl-1.1 shared zlib && make && makeinstall

fetchmail 7 のビルド

fetchmail 自身は以下のような感じでソースからビルドできます。

git clone https://gitlab.com/fetchmail/fetchmail.git cd fetchmail git checkout next ./autogen.sh ./configure --with-ssl=/usr/local/openssl-1.1 make

まだ alpha 版なので、make install せずに、ディレクトリ内にできた fetchmail のバイナリをそのまま呼出すことにします。
設定も普段使っている .fetchmailrc とは別の設定ファイル (例えば .fechmailrc7 )を作ることにします。

あとは、以下のような感じで呼出せば OK。

/path/to/fetchmail -f /path/to/.fetchmailrc7

例えば Office 365 上のメールを取得する.fetchmailrcの例は以下のようになります。

.fechmailrc7

set no bouncemail poll outlook.office365.com protocol pop3 auth oauthbearer username user@example.com passwordfile /path/to/access_token

ここで指定している /path/to/access_token は、前のエントリ(python-o365 を使って O365 アクセストークンを取得する)で取得したファイルを指すようにするのがポイントです。

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12632
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン