2002/06/23(日): fetchmail
それぞれのエントリを skip で記述しておき,
次のようなラッパーを書いて(デーモンとしてではなく) cron から起動するようにしてみた.
なお,自社・常駐先・自宅でネットワークの設定を切り替えるために
IP コンフィグ というツールを使ってホスト名を切り替えるようにしている.
#!/bin/shなお,.netrc というファイルにサーバ名・ユーザ・パスワードを書いておくと
HOSTNAME=`hostname`
case $HOSTNAME in
自社のホスト名)
fetchmail -d0 -s 自社のメールサーバ名
;;
常駐先でのホスト名)
fetchmail -d0 -s 常駐先のメールサーバ名
;;
自宅でのホスト名)
fetchmail -d0 -s 自宅のメールサーバ名
;;
esac
fetchmail 起動時にパスワードを聞かれなくなる.
このファイルはもともと ftp コマンド用のものらしい.
2002/06/23(日): procmail
*1してから mlist2html (MHonArcのラッパー) に食わせつつ自分が送信したもの
*2以外はスプールに残すようにした.
(LOG?)
(LOCK?)
0:
* ^From: .*自分のアドレス.*
| nkf -sm | mlist2html $HOME/public_html mail
0: c
*
| nkf -sm | mlist2html $HOME/public_html mail
*1: EUC じゃないのは添付ファイル名が日本語のときに Windows から見たときに
文字化け状態になるから.副作用があるかもしれないがとりあえず.
*2:Cc, Bcc で自分宛にも送信しておけばここに帰ってきて,
MHonArc でスレッドがつながってうれしいかなと思ったけど,
OE にはデフォルトで自分に CC するって設定がないのね.Mew は確かあったのに….
2002/06/21(金): メール(POP3, IMAP)用ユーザ
パスワードフィールドを持つユーザが必要.
そこではじめは NT 上でユーザを作って mkpasswd -lg > /etc/passwd して
そのユーザのパスワードを書き換えてたけど,不便なので回避策を編み出した.
NT 上に別ユーザは必要ない./etc/passwd で普段使うユーザの行をコピーして,
ユーザ名を適当に変えて,パスワードの部分だけ crypt の結果で置き換える.
すると,POP3, IMAP ではそのメール用ユーザでアクセスできて,なおかつスプール
(/var/spool/mail/(メール用ユーザ), /var/spool/imap/(メール用ユーザ)
*1) には
普段のユーザでもアクセスできる.
*1:/etc/c-client.cf に何か設定したはず….
2002/06/19(水): imap-cygwin の ipop3d
fetchmail (というより procmail) は普通に /var/spool/mail に書きに行くので,
ソース (Makefile) を修正.
diff -ur usr.org/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile usr/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefileあと,このPCではウィルスバスターの POP スキャンで
--- usr.org/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile 2001-07-06 15:08:18.000000000 +0900
+++ usr/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile 2002-06-19 20:34:30.000000000 +0900
@@ -221,7 +221,7 @@
cyg: # Cygwin 1.0
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
- SPOOLDIR=/var CC=gcc \
+ SPOOLDIR=/var/spool CC=gcc \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-O -DCYGWIN" \
diff -ur usr.org/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile.add usr/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile.add
--- usr.org/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile.add 2001-01-31 13:27:26.000000000 +0900
+++ usr/local/src/imap-2000/imap-2000a/src/osdep/unix/Makefile.add 2002-06-19 20:34:40.000000000 +0900
@@ -1,7 +1,7 @@
cyg: # Cygwin 1.0
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
- SPOOLDIR=/var CC=gcc \
+ SPOOLDIR=/var/spool CC=gcc \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-O" \
pop3 のポート 110 が占領されてるので,別ポートで立ち上げるために
設定ファイル /etc/c-client.cf を記述.
また,/cygdrive/c/WINNT/system32/drivers/services に対応するポート名を
適当に追加して,/etc/inetd.conf もそのポート名に変更.
I accept the risk for IMAP toolkit 4.1.
set pop3-port (ポート番号)
2002/06/18(火): Cygwin で qpopper 挫折
起動しようとしても trace ファイル (-tでファイル名指定) に
Unable to obtain socket and address of clientなどと出て起動できなかった.ウィルスバスターのPOPスキャンと
ボートがかぶってるのかとも思ったけど,そうではないようだ.
2002/06/18(火): Cygwin でその他の POP3 サーバ
cyrus-imapd 付属の ipop3d :
コンパイルにかなりてこずったけど起動まではいく.しかし認証がうまくいかない.
まず,
Berkeley DB が必要../configure 時に --prefix=/usr/local をつけないと,
/usr/local/BerkeleyDB4.0 とかいうようなディレクトリにインストールされて,
Cyrus の configure がライブラリを見つけてくれないので注意.
次に cyrus-sasl も必要.なにやら認証関連のライブラリのようだが,こいつが曲者.
いろんな認証アルゴリズムを plugin という形で動的に読み込めるようだが,
UNIX でいうところの lib*.so 代わりの lib*.dll が生成されなくて,
不完全な lib*.la ができるようだ.
このへん を参考に dllwrap を使って無理やり dll を作って lib*.la の中身の
dlname='' というところに dll のファイル名を入れてやったら,起動&通信はできた.
あと,リンク時に "errno が定義されてない" というようなエラーがよく出るが,
問題になってるソースで #include <errno.h> してやると通るようになる.
あと,起動するためには README や INSTALL を参考に,cyrus というユーザや
いろんなディレクトリを作る必要がある.
ほかにもいろいろあらかじめ設定することがあるのかも.挫折した後で
こんなページ を見つけた.これ読んで再挑戦しようかなあ.
imap-cygwin :
UW-IMAPD の Cygwin 版.コンパイル済みバイナリもある.IMAP は一応ちゃんと動作した.
ここ を参考に IMAP 対象ディレクトリを限定しないと,えらいこと
*1になってしまう.問題は,README にも書いてあるが,
/etc/passwd に UNIX 同様の crypt で暗号化したパスワードフィールドが必要なこと.
当然そのユーザでは telnet で入れなくなってしまう.
しかしまあ,考えようによっては POP 専用アカウントというのも悪くないかも.
普通の UNIX でも POP や IMAP のパスワードは
ログインパスワードとは別で管理することもあるから.
*1:$HOME 以下すべてのディレクトリがメーラーに取り込まれてしまう.
いろんなソースをコンパイルしてる途中だったので,ホント,えらいことになってしまった.
2002/06/17(月): Cygwin で Apache mod_ssl
うまくいかないときはログ (/var/log/apache.log, /var/log/apache/error_log, etc...)
を確認しよう.
2002/06/17(月): fetchmail + procmail + Namazu + qpopper
Cygwin 上でやろうとしたら qpopper がないことに気付いた.
tar玉からコンパイルしようとしたら,sendmail がなくて configure が通らなかった.
$ cd /usr/sbinしたら configure は通った.コンパイルは今から….
$ ln -s ssmtp sendmail
2002/06/16(日): ご挨拶?
2002/06/15(土): 卓球
あしたは相棒さんもお休みなので,夜更かししてみた.
しかし,カラオケ・酒・ボーリング・ビリヤードなどといったメジャーな夜遊びは
どれも嫌だってんで,消去法で卓球になった.元卓球部(笑)がお相手いたす!
というわけで,相棒さんは温泉卓球よりはワンランク上だと思う.
1.5時間ほど卓球して程よく汗かいたところで切り上げた.
相棒さんは「まだまだ平気!」とか言っていたが,階段上るのが苦しそう….
この虚弱体質めっ!毎日立ち仕事してるのはどっちだ!?