getmail
getmail は最小限の労力でメールサーバー上のメールアカウントからローカルマシンにメールを取得できるように作られたメール取得ツールです。getmail の設計はセキュアで柔軟性・信頼性があり、使いやすいように配慮されています。getmail は fetchmail などの他のメール取得ツールを置き換えることを目指して開発されました。
インストール
公式リポジトリから 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
形式で保存されます。メールボックスのフォーマットには主に mbox
と maildir
が存在します。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 を設定してメールをフィルタリングしてください。