2000 年度「計算機基礎論3B」 Mail コマンド

大学外から大学にアクセスする場合など、 telnet でログインしてメールを読み書きすることがあるでしょう。 そのときにつかう Mail コマンドについて説明します。

Mail で電子メールを(いちおう)読む

まずは、「あとで大学に行ったときよく読むとして、 いちおうメールに目を通しておこうかな」というときの読み方です。

Mail とだけ打って起動すると Mail コマンドの“サブプロンプト”が出ます。

    ws47{eb00d48}2% Mail
    mailx version 5.0 Thu May  2 21:00:21 PDT 1996  コマンドの概要については ?
    をタイプしてください。
    "/var/mail/eb00d48": 2 個のメッセージがあります。 2 個新規。
    >N  1 iwase@mailedu2.ipc Wed Nov  4 17:40   16/516   a test
     N  2 eb00d48@mailedu2.i Wed Nov  4 17:41   16/524   hello!
    ?
これがメール一覧です。 読みたいメールの番号を打てばメールの内容が画面に表示されます。 その際、(いわゆる)日本語コードは受け取ったままのコードで表示されますから、 JIS であるのが普通です。 telnet のソフトに日本語コードの設定があったら、 メールの番号を打つ前にコードを切り替えておきます。 メールのひとつを読んだあとでメール一覧に戻るときは「h」です。 上のメール一覧が画面に収まらないときは「z」で次画面、 「z-」で前画面に移ります。 メールの本文が一画面に収まらないときは、 パソコンの telnet 側でログを残すなどの工夫をすればいいでしょう。 Mail の終了は「x」です。 こうすればメールはそのままで、 unix のプロンプトに戻ります。

もしもメールが到着していなければ

    ws47{eb00d48}9% Mail
    eb00d48 宛てのメールはありません。
    ws47{eb00d48}10%
となって Mail コマンドはただちに終了します。

Mail で電子メールを送受信する

こんどは送受信両方について、くわしく説明します。

WS には「メールボックス(mailbox)」と呼ばれるところがあります。 それは、WS が各ユーザ宛のメールをためておくところ、と思ってください。 あるしかけにより、ユーザ宛のメールは到着するとここにたまります。

メールボックスから自分のファイルへメールをコピー・移動する

unix のプロンプトが出ているところで「Mail」と打ちます。 mail というコマンドもあるので大文字小文字に注意してください。 すると、もしメールが到着していれば次のようになります。

    ws47{eb00d48}2% Mail
    mailx version 5.0 Thu May  2 21:00:21 PDT 1996  コマンドの概要については ? をタイ
    プしてください。
    "/var/mail/eb00d48": 2 個のメッセージがあります。 2 個新規。
    >N  1 iwase@mailedu2.ipc Wed Nov  4 17:40   16/516   a test
     N  2 eb00d48@mailedu2.i Wed Nov  4 17:41   16/524   hello!
    ?

ここでは2通のメールが到着しています。 差出人のアドレス(の先頭部分)、 日時、メールの大きさ、サブジェクト(の先頭部分) が表示されています。 これらについてはあとで説明します。

「?」は Mail コマンドの中でのプロンプトです。 ここで、例えば mbox という名前のファイルにメールをコピーまたは移動するなら、 「s * mbox」と打って Enter を押します。すると

    ? s * mbox
    "mbox" [New file] 32/1040
    ?   
のようになります。これでメールボックスから mbox に新着メールがコピーされました。 もしもファイル mbox がすでに存在するときは [New file] の代わりに [Appended] と表示されます。 この「アペンド(append)」というのは「終わりにくっつける」ぐらいの意味です。 [Appended] と出たらファイル mbox のすでにあった内容の後ろに新着メールが追加されたことになります。 パーミッションの関係などで書き込みに失敗するとこれ以外のメッセージが出ます。

書き込みあるいはアペンドに成功したら「q」と打って Return を押すとメールボックスのメールは削除されて unix のプロンプトにもどりますから、 メールボックスから自分のファイルへメールを移動したことになります。

    ? q
    ws47{eb00d48}3%

書き込みあるいはアペンドに失敗してやり直したい場合、 あるいはメールボックスから自分のファイルへメールを(移動ではなくて) コピーしたい場合などは「x」 を打って Return です。 そうすればメールボックスは元のままです。

    ? x
    ws47{eb00d48}3%

自分のファイルに移したメールの読みかた

このままではファイル内のメールの(いわゆる) 日本語コードは受け取ったままですから、JIS であるのが普通です。 コード変換を行なうプログラム nkf を利用して 「nkf -e mbox > mbox.euc」とすれば mbox を EUC に変換して mbox.euc に収めます。

    ws47{eb00d48}4% nkf -e mbox > mbox.euc
    ws47{eb00d48}5%

(元からあれば上書きされます。 このあたりのことはリダイレクトとパイプについて習えばすぐわかります。)

mbox.euc は普通のファイルなので、mule などで読むことができます。

    From eb00d48@mailedu2.ipc.kanazawa-u.ac.jp Thu Nov  5 16:24 JST 1998
    Received: (from eb00d48@localhost)
    by ws47.ipc.kanazawa-u.ac.jp (8.8.8+2.7Wbeta7/3.6W/KAINS-1.2) id QAA2310
    9;
    Thu, 5 Nov 1998 16:24:13 +0900 (JST)
    Date: Thu, 5 Nov 1998 16:24:13 +0900 (JST)
    From: eb00d48 <eb00d48@mailedu2.ipc.kanazawa-u.ac.jp>
    Message-Id: <199811050724.QAA23109@ws47.ipc.kanazawa-u.ac.jp>
    To: eb00d48@mailedu2.ipc.kanazawa-u.ac.jp
    Subject: this is a test.
    Cc: iwase@mailedu2.ipc.kanazawa-u.ac.jp
    Content-Type: text
    Content-Length: 29
    
    これはテストです。
    
    岩瀬順一
    

「From」行は差出人と差出日時を示していますが、 その先の「Date:」行と「From:」行を見るほうが確実なようです。

「Received:」行はメールがどこを経由して着いたかを示していますが、 普段は気にする必要はありません。

「Date:」行は差出日時を示しています。 最後の「JST」は日本標準時の意。

「From:」行は差出人を示します。

「Message-Id:」はメール一つ一つにつけられた全世界で unique な文字列です。 これも普段は気にする必要はないでしょう。

「To:」はこのメールの宛て先。

「Subject:」は「サブジェクト(subject)」 といってメールにつけられた題名のようなもの。

「Cc:」は「カーボンコピー(carbon copy)」の送り先です。

「Content-Type」「Content-Length」の2行は私にはよくわかりません。 そこまでが「ヘッダ」と呼ばれる部分で、次に空行がきて、その次からが本文です。

メールの送りかた

次のような形式のファイルを WS 側に用意しましょう。 WS のエディタで作ってもいいし、 パソコンで作って ftp で WS に送っても構いません。 ここではこのファイルの名前を test としておきます。

    ~t eb00d49
    ~c eb00d48
    ~s this is a test.
    これはテストです。
    
    岩瀬順一
最初の三行の「~」は必ず行の先頭になければなりません。

「~t」の後ろに宛て先、すなわち送りたい相手のユーザ ID を打ちます。 複数の人に送る場合は

    ~t eb00d49 eb00d50
のようにスペースで区切って。もっと多くなったら
    ~t eb00d49 eb00d50 eb00d51 eb00d52 eb00d53 eb00d54 eb00d55 eb00d56 eb00d57
    ~t eb00d58 eb00d59
のように行を分けて、複数の行が「~t」で始まっても構いません。 (うんと多くなると問題が生じることもあるみたいです。 また、画面上の一行の4分の3ぐらいで改行するように、 と前に言いましたがこういう場合は例外。 画面上の一行にはいるだけいれたほうがいいでしょう。)

「~c」の後ろにはカーボンコピーの送り先を書きます。 ここには自分の ID を含めるのが普通です。 そうすれば自分にもカーボンコピーが送られてくるので、 自分の出したメールの控えをとっておくことができます。

「~s」の後ろにはサブジェクトを書きます。 これはメール一覧の右のほうに表示されるのでした。 いわゆる日本語は使えないので、ローマ字を使うか、 英語・ラテン語などで書きます。不要ならばこの行は省略できます。

そのあとは本文です。 その前の行との間が空いていませんが、 メールとして送ると自動的に一行空きますので、空けないほうがいいと思います。 本文には好きなことを書いていいのですが、 行頭には「~」を書いてはいけません。 どうしても書きたければ「~~」とします。 こう書くと、着いたときには「~」一つになります。

書きあがったらエディタを終了し、コマンドラインから 「nkf -j test | Mail ""」としてください。 「|」はシフトしながら「\」を打ちます。 最後の「""」はシフトしながら「2」を続けて二つ打ちます。 nkf -j test で日本語コードを JIS に変換し、 Mail "" でメールが送られます。 (このあたりのこともリダイレクトとパイプについて習えばすぐわかります。)


岩瀬順一