従来は、転送が必要なときは、 .procmailrc の中で転送先アドレスを書けば良かった (それで sendmail が起動された)。 何か郵便局の窓口に行っておじさんと交渉する感じだ。 これを街にあるポスト投函に切り替えるわけだ。
:0 c |$どこか/maildelivery.cgi |
はじめての自宅サーバ構築 - Fedora/CentOS - というWWWサイトに参考になりそうな ことが書いてあった。 届いたメールを加工して (MIMEやBASE64をデコードして、文字コードの変換をして…)、 先頭400文字分だけ、転送するという内容のスクリプト maildelivery.cgi があった。 転送には sendmail を使っているけれど、 そこを mailx に差し替えれば動作しそうだ。
maildelivery.cgi では、以下のものを使っている。
最初の2つはすぐに見つかった。
unzip perl-lib.zip sudo cp -p perl-lib.pl /opt/local/lib/perl5/site_perl/ |
curl -O http://www.cc.rim.or.jp/~ikuta/mime_pls/mime_pls202.tgz mkdir mime_pls202 cd mime_pls202 tar xzf ../mime_pls202.tgz sudo cp -p mimer.pl mimew.pl /opt/local/lib/perl5/site_perl/ |
最後の network_modules.zip が見つからない。 はってあるリンクがリンク切れになっている。 ネットには、 network_modules.zip を個人的にやり取りしているような記録もあったけれど、さて、どうしよう。
こういうときはダメ元で、 Internet Archive をチェックしてみる (こういうのもバッドノウハウなのかな)。 無事 network_modules.zip をゲットできた。
これで材料は揃った。後は maildelivery.cgi を書き直せば良いだろう。
maildelivery.cgi は出力を sendmail に渡すことを想定しているから、 ヘッダーまで作っているのだけど、今回は mailx で送信するので、 それは不要である。その部分は削る。 だから簡単なはずなのだけど、思いの他、大変だった。
一つの理由は maildelivery.cgi が古いスクリプトで、 UTF8 のことは考えていないようだ、というのがある。 これについては、Jcode を使うようにして何とか切り抜ける (Jcode というの出来ましたみたいのは、 Perl 使いでない自分も何となく覚えている)。
桂田 祐史