トップ 最新

ただのにっき

2000-01-11(火) [長年日記]

fetchmail

さて、今日はメールを受信しよう。この日のために、FreeMailに実験用のアカウントを用意しておいたわけよ。今日の教科書はここ。昨日はbindのバージョンが違って痛い目にあったけど、今日は(たぶん)大丈夫(笑)。用意したアカウントは++++++++@mizar.freemail.ne.jpなので、設定ファイルである.fetchmailrcは以下のようになる。*******はパスワード。マルチユーザで使うなら書くべきじゃないだろうけど、このマシンはおれ専用なので問題ないだろう。

defaults protocol pop3
	user ++++++++
poll mizar.freemail.ne.jp
	pass ********

このファイルを$HOMEに置いて、/usr/bin/fetchmailを実行するだけ。

$ fetchmail
File /home/sho/.fetchmailrc must have no more than -rwx--x--- (0710) permissions.

おぉぅ。怒られてしまった。セキュリティ対策ですな。

$ chmod 0710 .fetchmailrc
$ fetchmail
1 message for ++++++++ at mizar.freemail.ne.jp (1090 octets).
reading message 1 of 1 (1090 octets) . flushed

試しにNetscape Mailで読みだしてみる。よし、ちゃんと届いてるぞ、と。あとはいつも使ってる設定を.fetchmailrcに書き加えるだけで、Linuxで受信できるって寸法だ。まぁ、それはもう少しあとだけど(だってまだメール出せないからね)。

教科書のsendmailのところを読んでいたら、daemonとしてではなく、inetd経由でsendmailを動かす方法が書いてあった。ふむ。これはいいかも知んない。このサイトはslackwareをネタにしているので、Kondaraには合わないところもあるけど、なんとかなりそうなので、ついでに挑戦しておこう。まず、sendmailをdaemonとして起動させない方法は、linuxconfを使えばいい。/etc/inetd.confの編集はまったく同じ。sendmailを殺して、inetdにHUPを送るのも同じでいい。ただし、Kondaraを使っている場合は/var/runにあるファイルを使ってプロセスIDを得た方がカッコイイ(笑)。SMTPポートへtelnetしての動作確認、fetchmailによるメール受信も成功したので、大丈夫でしょう。あとはメールの送信か。あぁ、sendmail.cf。やりたくねぇなぁ、これだけは。

それはまぁ、明日にしようと思って、メーラをうだうだいじっていたら、重大なことに気がついた。フォルダが階層的に作れないのだ。例えばメーリングリストのメールを分類しようと思って、MLというフォルダを作る。その下に例えばrubyというフォルダを掘ろうとすると、「すでにMLというファイルがあるよ〜ん」という(意味の)メッセージが出る。そりゃそうだ。IMAPの「フォルダ」はそのフォルダに入っているメールをすべて集めた単一のファイルなので、その下にフォルダを掘ろうとしたらML/rubyというファイルを作らないといけない。でも、MLというファイルはすでにあるから、同じ名前のディレクトリなんて掘れるわけがないのだ。はて、これはいったいどうすればいいのじゃ? 試しにMLというファイル(フォルダ)は削除して、新規にML/rubyというフォルダを作ってみた。つまり最初から階層構造を意識した指定をしたわけ。そしたらできた。でもさぁ、これだとMLにはメールを整理できないんだよね。それに、あとから階層を深くしたいと思った時もダメ。なんだこの仕様。ダメじゃん。時おり見かけるMH形式ってヤツを試してみろってことかな。ふむん。ちょっと調べてみよう。