Fetchmail と qmail-pop3d |
|
暫く家を留守にするときとか、 プロバイダにメールを溜めておくと容量が心配になるので できればローカルの Linux マシンでメールを受信しておきたいなあと思ってました。 ついでに受信したメールを内部のホストから POP で吸い出せば良いかなあと。 一度 Linux マシンで受信することでバックアップもしやすいかもとか思って。 そんで、Fetchmail でメールを取り込んで、 qmail-pop3d とか使って POP サーバを立てることにしました。 Linux マシンは Vine-2.6rc4 が動いているので SMTP は Postfix が動作しているのですが、 あとあと qmail を動かすことを考えて、qmail もインストールしちゃうことに。
■まずは Fetchmail のインストール ~% sudo apt-get update ~% sudo apt-get install fetchmail パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージが新たにインストールされます: fetchmail 0 個のアップグレードパッケージ, 1 個の新規パッケージ, 0 個の削除/リプレースパッケージ, 4 個の保留パッケージがあります。 取得パッケージ: 451kB のアーカイブを取得します。インストール後は 1147kB が使用されます。 取得:1 http://updates.vinelinux.org 2.6/i386/updates fetchmail 5.9.11-0vl2 [451kB] 取得完了: 451kB を 0s (1157kB/秒) RPM コマンドを実行しています (-U)... fetchmail ##################################################次に Fetchmail を動かすユーザの設定。POP で受信する際に内部でパスワードが流れるのもあれ なので別のユーザを作っちゃいました。別のユーザを作ると知らないうちにバックドアのアカウント になってても、嫌なので SSH は証明書がないとログインできないようにもしてと。 ~% sudo /usr/sbin/usradd -s /bin/zsh kawa2 ~% sudo passwd kawa2 (パスワードは:pass)このユーザでログインして、 $HOME/.fetchmailrc を作成。パーミッションは 600 ~% /bin/su - kawa2 kawa2@~% vi ~/.fetchmailrc defaults # デフォルト設定 protocol pop3 # プロトコルは POP3 keep # メールを受信した後メールを消さない no rewrite # ヘッダを書き換えない no mimedecode # メールをデコードしない mda "/usr/bin/procmail" # MDA として procmail を指定 poll 172.16.27.2 # POP サーバのIPアドレス username "kawa" password "passwd" # POP サーバから受信するアカウント is kawa2 # kawa2 ユーザに蓄積 kawa2@~% chmod 600 ~/.fetchmailrc次に procmail の設定。受信したメールは全て Maildir の下に振り分けるように設定。 kawa2@~% vi ~/.procmailrc VERBOSE=off MAILDIR=$HOME/Maildir/ DEFAULT=/home/kawa2/Maildir/ :0 * /home/kawa2/Maildir/Maildir にいれるようにする。Maildir は qmail をインストールした後に作成する予定。 ■ 次に qmail のインストール Debianでは色々面倒そうだ。まだ調べ中なので、未完成。
でも単純にパッケージを削除しようとすると、関連パッケージまで削除されちゃう。
例えば、eximとqmailを入れ替えようとするのに単純にexim削除とすると、
apache等がぞろぞろと。
$ sudo dpkg --force-depends --purge exim $ sudo dpkg -i qmail.debこりゃほかでも使える技ですな。 Maildir の作成 kawa2@~% /var/qmail/bin/maildirmake Maildir ■ あとは qmail-pop3d だけ動作させて OK と ユーザ kawa2 で fetchmail を実行。kawa2@~% fetchmail 215 messages for kawa at 172.16.27.2 (137557 octets). reading message kawa@172.16.27.2:1 of 215 (628 octets) procmail: Couldn't create "/var/spool/mail/kawa2" not flushed reading message kawa@172.16.27.2:2 of 215 (756 octets) procmail: Couldn't create "/var/spool/mail/kawa2" not flushed (以下、ずらずら〜とエラーが)このエラーは /var/spool/mail/kawa2 がないのでエラーがでていたのでとりあえず作成。 ~% sudo touch /var/spool/mail/kawa2 ~% sudo chown kawa2.mail /var/spool/mail/kawa2 ~% sudo chmod 660 /var/spool/mail/kawa2正しい解決方法なのかはわからないけど、あるだけで良いみたい。 次はエラーがでずに終了。 これで取り込んだメールが /home/kawa2/Maildir/new の下に格納されているので、 別のマシンのメーラを設定して、 kawa2 ユーザで POP 受信すればメールが取得できると。 次に Fetchmail が定期的にメールを受信してくるように cron の設定。 デーモンモードもあるみたいなんだけど、 起動時に立ち上がる設定とか考えるのが面倒だったので、とりあえず cron で。 kawa2@~% crontab -e */10 * * * * /usr/bin/fetchmail > /dev/null 2>&1これで10分おきにメールが kawa2 の下に溜まってくると。 無事に動くことが確認できたら .fetchmailrc の keep をコメントアウトして、 サーバ側のメールを削除するように設定変更。 IMAP でほげほげしたい先輩もいたけど、多分似たような感じでできるんではないでしょうかヽ(´ー`)ノ ■ 転載元 ・ Fetchmail と qmail-pop3dを目指す 2004/04/02 |