address LogoPowered by Pegasus

ユーザ側の設定と使い方

1998/08/23

ここでは Plan9 のメール関係のファイルの設定項目を述べる。動作の仕組みは "Plan9 sendmail" で解説する。

一般的な解説は手に余るので、筆者の環境を想定してメールの設定を解説しよう。

  1. メールボックスの作成(mbox)
  2. 別名ファイル(names)
  3. メールを転送する(forward)
  4. メールを加工する(pipeto)
  5. メールを送信する(mail コマンド)
  6. メールを読む(mail コマンド)

メールボックスの作成

ユーザ alice のメールボックスを作成する場合にはユーザ alice として login し、
	mail -c
を実行する。

メールに関係したaliceのファイルは /mail/box/alice/ に置かれている。この内容は例えば以下の様になっている。(実際にはもっと少ないであろう。)

-lrw-rw-rw- M 2177 alice alice   0 Aug 28 11:10 L.mbox
-lrw-rw-rw- M 2177 alice alice   0 Dec  8 09:07 L.reading
--rw-rw---- M 2177 alice alice  25 Aug 28 12:00 dead.letter
--rwxrwxr-- M 2177 alice alice   9 Aug 28 12:01 forward
alrw-rw--w- M 2177 alice alice   0 Dec  8 09:07 mbox
--rw------- M 2177 alice alice  50 Nov 12 02:09 names
--rwxrwxr-x M 2177 alice alice 106 Aug 28 12:01 pipeto
mbox がメールボックスである。

別名ファイル

names は別名を指定する。例えば、筆者の場合には
-------- names ---------
#
# personal alias file
#
9fans   9fans@cse.psu.edu
------------------------
となっており、これによって
	mail 9fans
9fans@cse.psu.edu へメールを出す事ができる。

メールを転送する(forward)

forward は受け取ったメールを転送する場合に指定する。 例えば
-------- forward ---------
alice@venus
------------------------
と書いておけば alice@venus に転送される。このファイルは最初の1つの行だけが有効である。そしてその行には複数のアドレスを空白で区切って書く事ができる。

メールを加工する(pipeto)

pipeto は受け取ったメールに対して加工処理を必要とする場合に指定する。pipeto は実行ファイルである。
例を挙げよう。日本語メールを受け取る場合には mime ヘッダの処理と Plan9 の標準コードである utf への変換が必要になるかも知れない。この場合、
-------------------- pipeto ---------------------
#!/bin/rc
nkf -m | tcs -f jis-kanji >> /mail/box/alice/mbox
-------------------------------------------------
となる。ここでは mime ヘッダの処理に nkf を使用しその結果を tcs に渡して utf へ変換している。なお Plan9 用の nkf は
ftp://plan9.aichi-u.ac.jp/import/
に置かれている。

もっとも筆者の場合には NEXT から POP3 でメールを取りに行っている。NEXT は UTF8 を処理できないので、UTF8 への変換をしないでそのままメールボックスに保管している。
筆者がpipeto で処理しているのは ROM を決め込んでいるメーリングリストからのメールである。メーリングリストごとにメールボックスを作り、そこに保管し、 /mail/box/arisawa/mbox には送り込まない。


メールを送信する(mail コマンド)

筆者は最初にメールを出す時にまごついた。標題の入れ方が分からなかったのだ。

alice が bob にメールを出す時には以下の様にする。

term% mail bob
Subject: Help me!
I am in trouble. Please help me.
....
....
標題はメールの本文の先頭に書く。"Subject:" と本文の間に空行を入れなくとも自動的に1つの空行を入れてくれる。
標題欄のみならず、任意のメールヘッダを入れる事ができる。
term% mail bob
Subject: Help me!
Cc: Carol, David
Return-Path: alice@ar.aichi-u.ac.jp
I am in trouble. Please help me.
....
....
即ちメール本体の前にある
XXXXX:
の形の行は何であれメールヘッダと見做される。大文字と小文字の区別は気にしなくてもよい。
Return-Path は指定しなくても標準的なものをメールヘッダに入れてくれるが、直接に指定した場合にはこの方が優先される。

Plan9 ではメールを出す時に(Plan9端末を利用する限り)エディタは要らない。 シェルの動いているウィンドウそのものがエディタであり mail コマンドによって自動的にホールドモードになってくれる。即ち ESC キーによって ホールドモードを解除し ctl-D を打つまで送信されない。メール程度の大きさの文書であればこれで十分である。


メールを読む(mail コマンド)

到着したメールは mail コマンドで読む。
このコマンドは解説を要しない。内容は BSD の mail (あるいは System V の mailx )とよく似ているが多くの点で改善され、強化されている。Plan9 では不必要になった多くの内部コマンドが除去され単純化された事、それから標題の検索が可能になった事等である。

第3版の Plan9 では mail は upas/fs で読む事ができるようになった。 このコマンドによって mbox のメールは /mail/fs の中に、要素が分解されたファイルとして現れる。

cpu% upas/fs
cpu% cd /mail/fs
cpu% ls -l
--rw-rw-rw- M 9987 arisawa arisawa 0 Jun 24 23:03 ctl
d-r-xr-xr-x M 9987 arisawa arisawa 0 Jun 24 19:01 mbox
cpu% ls -l mbox
d-r-xr-xr-x M 9987 arisawa arisawa 0 Jun 24 19:01 mbox/1
d-r-xr-xr-x M 9987 arisawa arisawa 0 Jun 24 19:01 mbox/2
d-r-xr-xr-x M 9987 arisawa arisawa 0 Jun 24 19:01 mbox/3
cpu% ls -l mbox/3
--r--r--r-- M 9987 arisawa arisawa    0 Jun 24 19:01 mbox/3/bcc
--r--r--r-- M 9987 arisawa arisawa 1705 Jun 24 19:01 mbox/3/body
....
--r--r--r-- M 9987 arisawa arisawa   22 Jun 24 19:01 mbox/3/subject
--r--r--r-- M 9987 arisawa arisawa   21 Jun 24 19:01 mbox/3/to
--r--r--r-- M 9987 arisawa arisawa   10 Jun 24 19:01 mbox/3/type
--r--r--r-- M 9987 arisawa arisawa   71 Jun 24 19:01 mbox/3/unixheader
といった具合である。そこで必要なファイルを開けば内容が分かると言う訳である。

しかし、筆者は mail コマンドの方が使いやすい...

mail コマンドで困るのは mime 形式のメールの処理である。NEXTSTEP の Mail.app のような GUI ベースのメールリーダがあれば理想的なのだが...