▲Zaurus Top | ↑Up(設定・システム) | ←Prev(セルフ開発環境) | →Next(携帯電話でインターネット接続(失敗))
(2006/10/07)
次のようなメール環境を考える。
サスペンドしているときには、メールLEDも消えてしまうというのは、ハードウエ ア上の仕様だそうです。(Linuxザウルス開発メモ/独自ビルドカーネル)。いつでもメールLEDで着信を確認したい方は、メールがあるときにサスペンドしてしまわないように工夫しましょう。
普通、zaurus 持ち歩いていたら、これぐらいやりたいだろう!って思うけど、なぜか SL Zaurus はできない。MI Zaurus はできるみたいだけどね。(くやしい)
というわけで、手間暇かけて環境を構築する。
標準のメールソフト(qtmail)は史上最ダサといってもいいぐらい使えない。これでもSL-C700の時からは改善されているみたいだ。
いずれも、GUI で *.ipk をインストールするだけ。
POP サーバからメールを取得して(POP でも APOP でも可)、ローカル配信する、Unix 定番ツール。ローカル配信は、25番ポートの MTA でも、procmail などの MDA でもOK。ここでは、procmail を通じて、~/Mail/ に MH 形式で配信することにする。
インストールは、.ipk を GUI でインストール。/opt/QtPalmtop/ 以下に入るので、好みによって、本体メモリ、または、SDカードにインストール。
設定ファイルとして ~/.fetchmailrc にいろいろと設定を記述する(~/ は /home/zaurus/ のこと)。POPサーバのパスワードがプレーンテキストで記述されるので、パーミッションは 0600 でなければならない(でないと fetchmail はエラー終了する)。設定ファイルの書式は、半分英語風で文法の自由度が高く、どうにでも書けるのでわかりにくい。だいたい次のような感じ。詳しく知りたい人は、unix 版の fetchmail で man ページを参照のこと。
defaults limit 2000000 mda "/opt/QtPalmtop/bin/procmail" no mimedecode no rewrite poll your.pop3.server protocol POP3 user username password password # keep
ローカル(ここでは zaurus)のメールボックスにメールを配信する。振り分け機能もついている。設定ファイルの .procmailrc の書式が悪魔的に難解。奥義のコピペで乗りきるしかない。Unix 定番ツールだが、乗り換え先が無いため定番の地位にいるにすぎない。(→ procmail の設定を googleに聞く)
procmail が配信するメールボックスの形式をどうしよう。上で挙げたメールソフトたち、さらに将来、IMAP も試してみたい。IMAP server は uw-imapd は遅かった。速度に定評のある、Courier にしたい。それぞれ、使えるメールボックスの種類を考える。あんまりまともに調べてないので、間違ってるかも。ごめん。
メールソフト | mbox (/var/spool/mail/) | MH | Maildir | POP | IMAP4 | その他 |
---|---|---|---|---|---|---|
qtmail | × | × | × | ○ | (実質)× | 保存は独自形式で ~/Application/dtm/ に。 |
mutt | ○ | ○ | ○ | ○ | ○ | |
MaidMail | × | ○ | ○ | × | × | procmail で MH か Maildir に配信する必要がある。 |
Wanderlust | × | ○ | × | ○ | ○ | 母艦上では、MH スプールで Wanderlust を使っている。 |
qpopper | ○ | × | × | - | - | |
Courier IMAP | - | - | ○ | - | - | |
Courier ipop3d | - | - | ○ | - | - | |
uw-imapd | ○ | ○ | ○ | - | - | 独自形式の mbx だと速度が出るみたい。母艦の Vine-Linux はコレ。 |
今回は、振り分け機能は使わない。~/Maildir/ に Maildir 形式で配信するだけとする。よって、~/.procmailrc は単純である。
VERBOSE=off LOGFILE=$HOME/procmail.log DEFAULT=$HOME/Maildir/ #この行をコメントアウトすると /var/mail/ に mbox 形式で配信する。
ダイアルアップ環境で、プロバイダの SMTP サーバにつながらない時でもメールを送れるようにする、ローカルで動く SMTP サーバ。perl で書かれている。nomail は、inetd 経由で SMTP ポートを監視する。/usr/sbin/sendmail コマンドの代用にもなる。nomail が受けたメールは、ローカル配送可能ならば、/etc/nomail.conf で local_mda に設定したローカルメーラ(default=procmail)で配送する。リモート配送の場合は、/var/nomail/ にキューしておく。ダイアルアップしたときに、nosend が /var/nomail/ にキューされたメールを、プロバイダの SMTP サーバに送信する。
# インターネットにメールを出す時のメールアドレス(必須) internetaddr you@example.com # プロバイダの SMTP ホスト(必須) smtphost mail.example.com # インターネットにメールを出す時に Message-Id: を削除する invalid_msgid yes # ローカルメーラの指定(詳しい方向け) local_mda /opt/QtPalmtop/bin/procmail -d
smtp stream tcp nowait root /usr/sbin/tcpd nomail
bash-2.05$ /usr/sbin/nomail zaurus@localhost This is a test mail. This is a test mail. This is a test mail. . {行頭 . は EOF で本文終了→送信}
$ telnet localhost 25 Trying 127.0.0.1... Connected to zaurus. Escape character is '^]'. 220 localhost.localdomain SMTP Nomail 0.4.10 (Caravanserai) HELO foo@baa.com 250 localhost.localdomain Hello foo, pleased to meet you QUIT 221 localhost.localdomain closing connection Connection closed by foreign host.
ほんとは、zaurus 上で IMAP サーバを構築して、いろいろなメールソフトで同一のメールボックスにしておきたいのだが、いろいろと調べてみると、標準のメールソフト(qtmail)は、IMAP が非常にタコ!らしい。~/ 以下の全ファイルをメールとして扱ったり、接続ごとに、本文全部を取り寄せようとしたり。というわけで、IMAP サーバの構築はあきらめて、POP サーバのみ作るとする。IMAP は、良いメールソフトができたら考えよう。
探してみたが、ipk が見つからなかったので、作る。→qpopper の ipk の作成メモ。ダウンロードもそちらからどうぞ。
/var/mail/ に配信するようにしたときに、qpopper が「/var/mail/.zaurus.pop を書けない」って文句を言ったので、/var/mail のパーミッションを root.root で 0777 にしておく。セキュリティなんてあったもんじゃない。(あっ、touch .zaurus.pop しておけばいいのか?!)
探してみたが、ipk が見つからなかったので、作る。→courier-imap の ipk の作成メモ。ダウンロードもそちらからどうぞ。
基本的には、ipk の配布元(http://kimux.org/liza/mutt.shtml)
の説明通りでインストールできる。私の設定ファイル(
source "/home/QtPalmtop/etc/Muttrc" # システムの設定ファイルを読み込む。 #Muttrc は /home/QtPalmtop/etc/mutt-ja.rc を source している。 set mbox_type=Maildir set spoolfile="~/Maildir" set folder="~/Maildir" set realname="KONDOU Nobuhiro" set from="zkon@bz.wakwak.com" set copy=yes # make backup copy of sent mail. set record="+sent" set editor="vim %s" # show follow headers ignore * unignore from date subject to cc unignore x-mailer x-ml-name hdr_order Date From To Cc Subject Reply-to
MaidMail も、ipk で何の問題もなく入る。フォントや見た目を GUI で設定できるとうれしいかも。インストールしただけだと、アイコン長押しで高速起動のチェックボックスが出ないが、/home/QtPalmtop/apps/???/maidmail.desktop に CanFastload=1 と書いておくと、高速起動のチェックボックスが出る。チェックすれば、高速起動に対応可能。
テスト1。
$ sendmail my_mail_address@example.com 本文を入力 . {行頭の . で入力終了}
Connect to smtp.example.com ... Ok! Sending message xxxxxxxx ... OK!
1 message for my_mail_address at example.com ( xxxx octets). reading message my_mail_address@example.com:1 of 1 (xxxx octets) . flushed ↑.fetchmailrc で keep を指定していないばあいは、サーバのメールボックスから削除される。 テストではない必要なメールが意図せず取り込まれてしまわないように。
bash-2.05$ ls -R Maildir/ Maildir/: cur new tmp Maildir/cur: Maildir/new: 1058697389.1132_0.zaurus Maildir/tmp: bash-2.05$ cat ~/Maildir/new/1<TAB> 確認する
ipk でインストールあるのみ。ただし、同梱の mail_biff_maildir が ipk のインストールと GUI 設定だけでは連動しなかった。~/.cron_inetrc に手動で、次のように書き加える。
$biff = '/home/QtPalmtop/bin/led_biff_maildir /home/zaurus/Maildir/new/'
ruby 1.8 を使う時は、/opt/QtPalmtop/lib/ruby/ 以下のディレクトリが owner=root.qpe, mode=0755 になっていないとダメだ。
りなざうテクノウ経由、ひとりぶろぐを見て、CronInet でメールが届いたら、「You've got mail.」と喋るようにした。
今まで:
定期的に電源ONして fetchmail でメールを取りに行って、メールがあったら LED が光るが、すぐに電源OFFする。よって、能動的に Zaurus を使うとき(スケジュールやら計算やら)に初めて、メールLEDに気づく。
今後:
メールがあったら、音声で知らせるので、メールに気づきやすい。音声だと注目を浴びてしまう場合は、チャイムにすればいい(あまり面白くないが)。
■手順
#$biff = '/home/QtPalmtop/bin/led_biff_maildir /home/zaurus/Maildir/new/' $biff='/home/zaurus/mybiff.sh'
#!/bin/sh maildir=/home/zaurus/Maildir/new/ /home/QtPalmtop/bin/led_biff_maildir $maildir ls_result=`ls $maildir` if [ -n "$ls_result" ] ; then /usr/local/bin/flite -t "You've got mail." fi
■発展
ntpdate で自動時刻合わせのコマンドも挿入してもよいかも。
#visudo
で sudoers を編集。
zaurus ALL=NOPASSWD:/usr/bin/ntpdate
とすれば、パスワードを要求せずに ntpdate を実行できる。
sudo ntpdate $NTP_SERVER
というコマンドを mybiff.sh のどこかに挿入しておく。まぁ 1時間毎に時計合わせをしなくてもよいか。
ledctl などで変化を付けてみても良いか。
▲Zaurus Top | ↑Up(設定・システム) | ←Prev(セルフ開発環境) | →Next(携帯電話でインターネット接続(失敗))