getmail

提供: ArchWiki
2019年3月1日 (金) 00:09時点におけるKusakata (トーク | 投稿記録)による版 (カテゴリ変更)
ナビゲーションに移動 検索に移動

getmail は最小限の労力でメールサーバー上のメールアカウントからローカルマシンにメールを取得できるように作られたメール取得ツールです。getmail の設計はセキュアで柔軟性・信頼性があり、使いやすいように配慮されています。getmailfetchmail などの他のメール取得ツールを置き換えることを目指して開発されました。

インストール

公式リポジトリから getmail パッケージをインストールしてください。

設定

  • 次のコマンドで設定ディレクトリを作成して、適切なパーミッションを設定してください: $ mkdir -m 0700 ~/.getmail。メインの設定ファイルにはパスワードなどの機密情報が平文で保存されます。
  • デフォルトの設定ファイルを作成してください: ~/.getmail/getmailrc。メールを取得するメールサーバーごとに別の設定ファイルが必要になります。デフォルト以外の設定ファイルは引数を使って getmail コマンドに明示的に指定します。

メールの取得

以下は gmail アカウントの getmailrc の例です:

[retriever]
type = SimplePOP3SSLRetriever
server = pop.gmail.com
username = username@gmail.com
port = 995
password = password

[destination]
type = Maildir
path = ~/mail/

POP3 サービスの仕様にあわせて調整することができます。

設定ファイルに平文でパスワードを保存するのではなくキーリングにパスワードを保存したいときは、GNOME Keyring をセットアップして python2-gnomekeyring パッケージをインストールしてください。そして、getmailrc から password エントリを削除して、以下のコマンドを実行してください:

$ getmail --store-password-in-gnome-keyring

入力したパスワードはキーリングに保存されます。

getmailrc に以下のセクションを追加することで、getmail が起動するたびにサーバーから全てのメールを取得するのを止めることができます:

[options]
read_all = False

上の設定例ではメールは maildir 形式で保存されます。メールボックスのフォーマットには主に mboxmaildir が存在します。mbox ではメールやヘッダが全てひとつのファイルに保存されるのに対して、maildir はディレクトリツリー構造になっています。後者の方が基本的には高速です。

maildir フォルダの中には cur, new, tmp フォルダを作成します:

$ mkdir -p ~/mail/{cur,new,tmp}

設定ができたら getmail を動作させてみましょう。問題なく動くようでしたら、定期的に getmail を実行する cron ジョブを作成できます。crontab -e で cron ジョブの編集を開始して、以下を入力:

*/10 * * * * /usr/bin/getmail

上記の設定だと10分ごとに getmail が起動します。

getmailrc に以下を追加することで getmail のログ出力を減らすことができます:

[options]
verbose = 0

getmail で複数のメールアカウントを使用する

デフォルトでは、getmail は上のセクションで作成した getmailrc ファイルを検索します。複数のメールアカウントを使用したい場合、メールアドレスごとに同じようなファイルを作成して、getmail にファイルを指定して実行してください。当然ファイルのナマを同じ getmailrc にすることはできません。ここでは例として personal (個人用メールアドレス) と university (大学用メールアドレス) とファイルの名前を付けてみます。ファイルを作成したら --rcfile スイッチを使うことでファイルを使用することができます: getmail --rcfile university --rcfile personal.getmail ディレクトリにファイルが存在すれば好きな数だけファイルを指定できます。cron ジョブも --rcfile スイッチを使うように変更すると以下のようになります:

*/30 * * * * /usr/bin/getmail --rcfile university --rcfile personal

procmail でメールを振り分け

getmailrc を編集して取得したメールを procmail に渡すように設定します:

[destination]
type = MDA_external
path = /usr/bin/procmail

procmail を設定してメールをフィルタリングしてください。

参照