fetchmail

(作成:2005/01)

突然だが、メールチェックて実は結構困ったもんじゃなかろーか、とか言ってみる。何がって、例えばMLとかに入っててメールサーバ容量が不安な人とか、メールチェックするだけなのに一々メーラー起動するのも億劫な人とか、別に何処から来るアテも無いんだけど絶えずメールチェックしとかなきゃ落ち着かない脅迫観念に駆られた病んでる人とか。最後のはウチだけど。
で、折角ならそういうのもデーモンとして定期的にチェックしてくれないかな、という事で便利なのがこちら。やってる事は結局「絶えずメールチェックする」て事なんだけど、自動でやってくれるので楽っちゃ楽。

Install on Debian

# apt-get install fetchmail

設定

設定は大きく分けて「グローバルオプション」「サーバオプション」「ユーザオプション」の3つに分かれている。

グローバルオプション

主にfetchmail全体に関する設定なんかを設定できる。設定項目は全て頭に set を付けて記述する。
defaults の部分は、次に続くサーバ/ユーザオプションのデフォルト設定。(オーバーロード可能)

## ~/.fetchmailrc

# システムログ取得
set syslog

# 最終的なメール受取ユーザの指定
# 普通は自分のログインユーザ。
set postmaster "riyo"

# エラーがあったらpostmasterにエラーメールを投げる
# これが無いと、メール送信者にメールを投げちゃうので注意。
set no bouncemail

# defaults設定
# デフォルト設定は上書き可能なので、これに追加修正の型式でアカウントご設定ができる。
defaults proto pop3
    # こっから下がユーザオプション
    no mimedecode
    batchlimit 100
    mda "/usr/bin/procmail"

サーバ/ユーザオプション

取り扱うメールサーバのプロトコル等の指定とか。 poll または skip に続く一行。普通はpollを使用すれば良い。
メールを取得したいメールサーバの指定は poll に続けて記述。この設定は defaults を継承するので、共通設定項目は defaults に記述しておけば書く必要が無くて便利。 以下に仮メールサーバ設定と対するfetchmail設定内容を示しておく。

項目
サーバ名 mail.hyakki.local
POP apop
アカウント名 riyo
振り分けたいアカウント riyo
## ~/.fetchmailrc

# メールサーバ
poll mail.hyakki.local
    # メールに利用するプロトコル
    # 以下では一般的なPOP3プロトコルの設定。
    proto apop

    # メールサーバにメールを取っておきたい場合に指定。
    #keep

    # メールをMIMEデコードしない。
    #no mimedecode

    # スパム防御として解釈されるSMTPの返し値を指定
    # 設定によりスパム防御が可能らしい。今の所どうでも良いから設定値間違ってるかも(ぉ
    #antispam -1

    # 一回の接続で取得する最大メール数
    #batchlimit 100

    # メール配信に使うプログラム(MDA)の指定
    # ここではprocmail使ってる。また、これを指定しない場合取得したメールはmbox形式で、
    # デフォルトで "/var/spool/mail/'ユーザ名'" に保存される。
    #mda "/usr/bin/procmail"

    # メールサーバのアカウント名
    user riyo

    # メールサーバのパスワード
    # 素で記述することになるので、このファイルは絶対に人に見せてはいかん。
    password '********'

    # 指定したメールアカウントを振り分けるユーザ名
    # "is" ~ "here" で囲って記述する。
    is riyo here

パーミッション変更

最後の最後に一番大事な事。このファイルには見ての通り、パスワードがベタ書きされているため、他人に見られたりすると非常にヤバい。
システム側もそれなりに気の利いた事をしてくれて、このままfetchmailを起動しようとしてもパーミッションエラーが返されることになる。なので、設定ファイルを以下のようにパーミッション変更してやる必要がある。

$ chmod 600 ~/.fetchmailrc