2006年9月21日木曜日

メール環境改革 - fetchmail

fetchmail は特殊なメールクライアントで、
定期的にメールサーバに届いたメールを自動的にとってきてくれるという便利なものです。
メールサーバに自動転送機能がない場合に便利です。
他にも便利な場面はたくさんあります。
ではインストールです。
以下を実行ください。

# echo 'net-mail/fetchmail ~x86' >> /etc/portage/package.keywords
# emerge net-mail/fetchmail

あとは各個人で設定です。
自分のホームディレクトリの .fetchmailrc ファイルに設定を書きます。
以下を実行します。

$ cd ~
$ touch .fetchmailrc
$ chmod 600 .fetchmailrc

.fetchmailrc の内容については以下のようにします。
なお、'<','>'で囲まれている文字列に関しては'<','>'も含めて適当な文字列に置き換えてください。

defaults
protocol pop3
keep
no mimedecode
smtpaddress localhost

poll <IP address or FQDN of mail server A>
user <user name of mail server A>
password <user password of mail server A>
is <unix account in this server for storing received mail> here

poll <IP address or FQDN of mail server B>
user <user name of mail server B>
password <user password of mail server B>
is <mail address>

自動的にアクセスしたいメールサーバが複数あれば、
poll を先頭とする単位で設定を並べていくだけです。
これだと、サーバAから取ってきたメールを fetchmail が動作しているマシンのSMTPサーバの
<unix account in this server for storing received mail> ユーザ宛てに送り、
サーバBからのは <mail address> 宛てに送ります。
詳細は

$ man fetchmail

で見られるので必要に応じて調べてください。
この状態で自分のアカウントでログインし、

$ fetchmail

を実行すればメールを手動で取ってこれます。
設定ファイルに

set daemon <seconds>

を加えれば、<seconds> 秒毎に自動的にメールを取りに行きます。
ただ、周期起動に関しては、各個人で設定するより cron で周期起動した方がいいので、
設定方法を説明します。
以下を実行します。

# echo 'app-admin/sudo ~x86' >> /etc/portage/package.keywords
# emerge app-admin/sudo
# cd /usr/bin
# touch fetchmail_alluser
# chmod 500 fetchmail_alluser
# vi fetchmail_alluser
↓以下をファイル内容とする
#!/bin/bash
for dir in `ls -1 /home`; do
if [ -f /home/$dir/.fetchmailrc ] ; then
echo fetchmail $dir
sudo -u $dir -H fetchmail
fi
done
# echo '*/15 * * * * root /usr/bin/fetchmail_alluser' >> /etc/crontab

これで15分毎にすべてのアカウントについて fetchmail が実行されます。
これで十分だと思います。

最後になりますが、fetchmail の設定ファイルにはパスワードが平文で入ることになります。
パーミッションにはくれぐれも注意ください。
また、暗号化等されていない通常の POP や IMAP を使っているメールサーバに対して、
fetchmail で定期的にログインを繰り返すと、
ネットワーク上に平文なパスワードが定期的に流れることになります。
普通のメーラーを使っていてもそうはなっていますが、
fetchmail だと365日24時間休みなく流れることになります。
そんなに神経質になる必要はないのかもしれませんが、
このあたり認識した上で運用してください。

次は、メールフィルタ procmail についてです。

0 件のコメント:

コメントを投稿