Linuxの部屋に戻る月読のトップページへ

fetchmailとprocmail

メールを一元管理できると便利かなと考えた。そして、自動的に色々なpopサーバからメールを取って来てくれると便利だね。

プログラムの準備

Vine Linux 2.0CRには、fetchmailprocmailがインストールされています。
なので、ここでは設定だけを書きます。

fetchmail-5.1.0-1.i386.rpm
procmail-3.14-1.i386.rpm

が、インストールされています。

fetchmailの設定

fetchmailを使用したいユーザのホームディレクトリに.fetchmailrcと言うファイルを作る。

  set daemon 3600
defaults
  protocol pop3
  uidl
  no rewrite
  no mimedecode
  mda "/usr/bin/procmail"
# keep

poll host_name.domain_name
  username pop_user
  password "pop_password"

poll host_name2.domain_name
  username pop_user2
  password "pop_password2"

”#”は、コメント。keep は、サーバにメールを残しておく設定。poll は、popサーバの設定。set daemon は、何秒毎に実行するかの設定。mda は、メールを受け取った後に実行されるプログラムで、どこのディレクトリに転送するかを決める。パスワードとかを書きこむので、他のユーザから覗かれ無いように、

$ chmod 600 .fetchmailrc

と言う、コマンドを実行しておく。

procmailの設定

fetchmailが受け取ったメールをディレクトリ毎に振り分けるのは、procmailの役割。procmailの設定は、.fetchmailrcと言うファイルで行う。

# 全体的な設定
#VERBOSE=on
PATH=/usr/bin:/bin:/usr/local/bin:.

# ディレクトリの設定
MAILDIR=$HOME/ # You'd better make sure it exists
DEFAULT=$HOME/Mail/
LOGFILE=$MAILDIR/from
# LOCKFILE=$HOME/.lockmail

# ここらへんは行数を正しく表示させるためのおまじないみたい(^^;)
:0
* ! ^Lines:
{
  # Count number of lines
  :0B
  * 1^1 ^.*$
  { }
  LINES = $=

  # Add Lines: header
  :0 fhw
  | formail -a "Lines: $LINES"
}

# Vine-users のメーリングリストも専用のメールボックスへ
:0
* [Tt]o: vine-users@proxy.ryukyu.ad.jp
Vine-Users/

SPAM ばかりやってる奴のメールは捨てる(例)
:0
* [Ff]rom: .*dareka@dokoka.ne.jp
/dev/null

MAILDIR は、普通~/Maildirなのだけど、私が使っているメーラーがホームディレクトリに並列的にディレクトリを作らないといけないやつなので、上のようになっている。後は、正規表現を使って、振り分けの設定を書いていく。

プログラムの起動

最後にfetchmailを起動する。

$ fetchmail

これで動くはず。私は、Active! mailと言うWeb上からメールを見れるツールをこのサーバに入れている。これだと、どんなプラットフォームでも、どのPCでも同じようにメールが読める。firewallがあって、ポートが空いていない環境でも、メールが読めるので、かなり便利になりました。

Linuxの部屋に戻る月読のトップページへ