この章では,次のコマンドのいずれか 1 つを使用して行う,ネットワーク上でのメッセージの送受信について説明します。
この章の例では,Mail
ではなく
mailx
プログラムを使用します。
mailx
を使用すると,次のようなタスクを実行することができます。
ユーザへのメッセージの送信
送信前のメッセージの編集
メッセージへのファイルの読み込み
着信メッセージの保存,および分類
第 12 章で説明しているように,mailx
を使用してファイル全体を送信することもできます。
write
コマンドおよび
talk
コマンドは対話形式で実行されます。
この場合,受信側がログインしていなければなりません。
これらの対話式コマンドを使用する前には,第 10 章で説明している次のコマンドを使用して,ユーザやホストの名前およびアクセスが可能かどうかを確認します。
finger
または
who
ローカル・ホスト上のユーザを検索する。
finger
,rwho
または
ruptime
リモート・ホスト上のユーザを検索する。
ping
または
ruptime
現在アクセス可能なホストを検索する。
mailx
を使用すると,次の場所にいる 1 人または複数のユーザに対して,メッセージを送信することができます。
ユーザのローカル・ホスト
TCP/IP を介してユーザのローカル・ホストに接続されているリモート・ホスト
TCP/IP,DECnet,または UUCP アドレッシングを介した別のネットワーク上のホスト
mailx
コマンドの構文は次のとおりです。
mailx
user [
@
{ host domainhost.domain } ] ...
ローカル・ホスト上のユーザにメールを送信するには,mailx
コマンドを入力し,各ユーザに対してパラメータ
user
を指定してください。
リモート・ホスト上のユーザに送信する場合は,アットマーク (@
) の後に,ホストの位置を示す情報を追加しなければなりません。
たとえば,ホスト
orange
から同じローカル・ホスト上のユーザ
smith
と
jones
にメールを送信するには,次のコマンドを入力してください。
orange% mailx smith jones
同じドメイン内の別のホスト
pluto
上のユーザ
hobbes
にメールを送信するには,次のコマンドを入力してください。
orange% mailx hobbes@pluto
この例のユーザ
hobbes
が
planets
という別のドメインにいる場合は,次のコマンドに示すように,リモート・ネットワーク・ドメインの名前を追加します。
orange% mailx hobbes@pluto.planets
ドメインは,名前をピリオド (.) で区切って宛先をさらに細かく区分することがあります。 ネットワーク管理者によるネットワークの構成方法によっては,次に示すコマンドの例のように,ドメイン名だけを指定して,別のドメインにあるリモート・ホスト上のユーザのアドレスを指定することができます。
orange% mailx hobbes@planets
メール・メッセージのアドレス指定については,必要に応じてシステム管理者に問い合わせてください。
11.2 mailx を使用したメール・メッセージの送信
この節では,mailx
を使用してローカル・ホスト上のユーザへメッセージを送信し,そのメッセージのコピーを他のユーザへ送信する方法について説明します。
例を開始するにあたって,まず,ユーザ Jones は,ローカルのシステム・プロンプト
orange%
から
mailx
コマンドを次のように入力します。
orange% mailx suzuki [Return]
Return キーを押すと,Subject:
プロンプトが表示されます。
もう一度 Return キーを押すと,表題は空白のままになります。
この例では,ユーザ Jones は次のように,メッセージの表題を入力してから
Return キーを押し,続いてメッセージを書き始めます。
Subject: Baseball question [Return] Are there any Japanese baseball simulation games? I want to compare Sadharu Oh's hitting statistics to those of Hank Aaron. To do this, I need to set up a simulated baseball season having each hitter play for one year in the other player's league.
次に示すように,ユーザ Jones は,空白行にピリオド (.) をタイプし,Return キーを押して,メッセージの入力を終了します。
.
.
.
play for one year in the other player's league. . [Return] Cc:
この例では,メッセージはまだ送信されず,代わりにプロンプト
Cc:
(carbon copy) が表示されます。
これは,ユーザ Jones が,自分のホーム・ディレクトリにある
.mailrc
ファイルに
set askcc
を追加して,メール・セッションをカスタマイズしているためです。
メール・セッションのカスタマイズについては,11.6 節および付録 D
を参照してください。
Cc:
プロンプトによって,他のユーザにコピーを送信することができます。
コピーを送信しない場合には,Return キーを押して
mailx
を終了し,メッセージを送信してください。
すると,テキストの終端を示すメッセージ (EOT
) と,その後にシステム・プロンプトが表示されます。
この例では,ユーザ Jones は,Cc:
プロンプトに対して,
ローカル・ユーザの
cranton
と,リモート・ユーザの
gillis
および
vincep
のそれぞれ適切なアドレスを指定します。
Return キーを押して
mailx
を終了し,メッセージを送信すると,コピーが送信されます。
.
.
.
Cc: cranton gillis@strato vincep@mlb.bbs.com [Return] EOT orange%
mailx
プログラムは,アドレス指定エラーから回復することができます。
たとえば,ローカル・ホスト上の受信者が
cranton
である場合に,
間違って
crantom
とタイプしたとすると,次のメッセージがすぐに画面に表示されます。
crantom... User unknown
メッセージはユーザに送り返されます。 ユーザはそれを保存して,正しい宛先に送信し直すことができます。
リモート・ホスト上の未知のユーザにメッセージを送信すると,mailx
がそれをユーザに送り返すまでに最長で 3 日間かかることがあります。
送り返されたメッセージの保存と再送信の方法については,11.3.3.1 項を参照してください。
11.2.1 メッセージの編集
メール・メッセージを送信する前に編集するには,Subject:
プロンプトに応答した後,次のエスケープ・コマンドのうちのいずれか 1 つを入力して,mailx
内でエディタを起動します。
~v
の入力
ユーザの
.mailrc
ファイルに
set VISUAL
を指定して設定したスクリーン・エディタを起動する。
~e
の入力
ユーザの
.mailrc
ファイルに
set EDITOR
を指定して設定したテキスト・エディタを起動する。
~e
コマンドを使用して,
mailx
内でテキスト・エディタを起動するには,新しい行の先頭に
~e
を入力してください。
チルダ (~
) が表示されるまでは数回入力する必要があるかもしれません。
たとえば次のようになります。
Subject: network documentation meeting at 2 PM Everyone, please bring the Table of Contents for your manual so that we can look for areas of overlapping subject matter and ~e
ユーザの
.mailrc
ファイルに
set EDITOR=/usr/ucb/vi
が記述されている場合,ユーザは
vi
エディタを使用して,最初の行の綴りの間違いを訂正して,メッセージを書き終えることができます。
編集セッションを終了すると,mailx
に戻ります。
ユーザは,メッセージを書き終わって
mailx
を終了するか,または,vi
を再び呼び出して,メッセージを書き続けることができます。
11.2.2 メッセージの打ち切り
メッセージの送信を中断することがあります。
メッセージを送信する前に打ち切る方法には 2 通りあります。
11.2.2.1 Ctrl/C を使用したメッセージの打ち切り
ユーザは,メッセージ内の任意の場所で Ctrl/C を 2 回押して,メール・メッセージを打ち切ることができます。 Ctrl/C を 1 回押すと,次のメッセージが表示されます。
(Interrupt -- one more to kill letter)
この時点で,メッセージを打ち切るかどうかをもう一度検討することができます。 打ち切らない場合は,続けてテキストを入力してください。 メッセージを打ち切る場合は,もう一度 Ctrl/C を押します。 すると,次のメッセージが表示されます。
(Last Interrupt -- letter saved in dead.letter)
これでメッセージは打ち切られ,mailx
を終了して,システム・プロンプトが表示されます。
省略時の設定では,打ち切られたメッセージは,ユーザのホーム・ディレクトリの
dead.letter
ファイルに保存されます。
打ち切られたメッセージを保存しない場合は,set nosave
をユーザの
.mailrc
ファイルに入力します。
詳細については,11.6 節および付録 D
を参照してください。
dead.letter
ファイルには最後に打ち切られたメッセージだけが保存されます。
メール・メッセージに打ち切られたメッセージを取り込むと,編集や再送信ができます。
メッセージにファイルを取り込む方法についての詳細は,11.2.3 項を参照してください。
次に,Ctrl/C を押してメール・メッセージを打ち切る例を示します。
orange% mailx sally Subject: Update to reference page files What should the mailx(1) reference page include about sending to remote users?[Ctrl/C] (Interrupt -- one more to kill letter) [Ctrl/c] (Last Interrupt -- letter saved in dead.letter) orange%
11.2.2.2 エスケープ・コマンドによるメッセージの打ち切り
空白行に
~q
または
~x
のエスケープ・コマンドを入力することによって,メール・メッセージを打ち切ることができます。
Ctrl/C を押してメッセージを打ち切る方法とは異なり,このコマンドでは,再考するためのプロンプトは表示されず,直ちにメッセージを打ち切ります。
~q
エスケープ・コマンドは,打ち切られたテキストをユーザのホーム・ディレクトリの
dead.letter
ファイルに保存しますが,
~x
は,.mailrc
ファイルに
set save
と設定していても,保存しません。
次の例は,~x
エスケープ・コマンドを使用して,メール・メッセージを打ち切る方法を示しています。
orange% mailx sally Subject: Update to reference page files What should the mailx(1) reference page include ~x orange%
チルダ (~
) が表示されるまでに数回入力する必要があるかもしれません。
11.2.3 メッセージへのファイルの取り込み
メール・メッセージ内に,任意のファイル (未変換のバイナリ・ファイルは除く) を取り込むことができます。
アドレスの指定を誤って返却されたメールを保存して再送信 (11.3.3.1 項参照) する場合や,
ユーザのホーム・ディレクトリの
dead.letter
ファイルに保存している打ち切られたメッセージを編集して再送信する場合に,この方法が使用されます。
前述の例では,dead.letter
ファイルには次のテキストが含まれています。
What should the mailx(1) reference page include about sending to remote users?
追加情報を加えた後,このファイルをユーザ
sally
に再送信すると仮定します。
mailx
内では,~d
エスケープ・コマンドを使用すると,現在の作業ディレクトリに関係なく,dead.letter
のテキストがメール・メッセージに自動的に追加されます。
例 11-1
では,ユーザ
sally
へのメッセージを開始してから,~d
コマンドによって
dead.letter
のテキストを追加します。
例 11-1:
dead.letter
ファイルへの取り込み
orange% mailx sally Subject: the mailx(1) reference page The uucp(1) reference page has formatting information for sending to remote users. ~d "/usr/staff/r2/sally/dead.letter" 2/76
ファイルを取り込むと,完全パス名とともに,そのファイルの行数 (2
) および文字数 (76
) (Return キーまたは各行末の制御文字を含む) が表示されます。
この後,終了することも,続けてメッセージを書き込むこともできますが,~p
エスケープ・コマンドで表示されないインクルード・ファイルの内容を参照したり,テキスト・エディタを使用してインクルード・ファイルの内容を変更したりすることもできます (たとえば,vi
を使用したい場合は
~v
と入力します)。
注意
dead.letter
ファイルには,最後に打ち切られたメール・メッセージだけが保存されます。 送信したいテキストが含まれていることを確認しなければなりません。
メール・メッセージにファイル (dead.letter
を含む) を取り込むには,~<
,または
~r
のいずれかのエスケープ・コマンドを指定してから,ファイル名を入力してください。
この 2 つのコマンドはどちらも同様に動作します。
ファイルのディレクトリが,mailx
を入力したディレクトリと異なる場合には,ファイル名の前に完全パス名または現在のディレクトリに対する相対パス名を指定しなければなりません。
次の
例 11-2
では,~<
エスケープ・コマンドを使用して,現在の作業ディレクトリの下の
environ
ディレクトリから,strato_prob
というファイルを挿入します。
例 11-2:
mailx
コマンドを使ったファイルの取り込み
orange% mailx sally Subject: Dan, here's the stratosphere data file ~< environ/strato_prob "environ/strato_prob" 41/1309
mailx
ユーティリティによって,対話形式を使用しないでファイルを転送する方法については,12.1.3 項を参照してください。
11.3 メール・メッセージの受信
メール・メッセージを受信する場合には,次のいずれかを選択できます。
任意のメッセージを読み込むかまたは削除する。
メールの送信者およびその他の受信者に応答する。
ファイルにメッセージを保存する。
フォルダと呼ばれるメッセージの保存用ファイルに,トピックごとにメッセージを分類する。
ユーザがログインしたとき,オペレーティング・システムのコマンドを入力したとき,または Return キーを押したときに,新しいメールが到着していれば,mailx
プログラムはそれを通知します。
また,システム・プロンプトから
mailx
コマンドを入力して,新しいメールが到着しているかどうかを調べることもできます。
例 11-3
では,ホスト
orange
のユーザ Jones が
mailx
を入力して,2 件のメッセージが到着していることを確認します。
例 11-3:
mailx
環境に入る
orange% mailx Mail $Revision: 1.1.6.4 $ Type ? for help. "/usr/spool/mail/jones": 2 messages 1 new 1 unread U 1 root Mon Jul 20 10:39 14/438 "System news" >N 2 root Mon Jul 20 11:30 11/292 "Welcome" ?
この例では,システム管理者 (root
) からの 2 件のメッセージが到着しています。
1 件は,以前の
mailx
のセッションから未読のメッセージ (1 カラム目に
U
と示される) であり,もう 1 件は,新しく到着したメッセージです (N
で示される)。
メッセージの最後に表示される疑問符 (?
) は,mailx
のプロンプトです。
この表示のヘッダおよび
11.4 節
で説明するように,このプロンプトからもう 1 つ疑問符を入力すると,使用可能な
mailx
のコマンドのリストを表示することができます。
mailx
プロンプトで Return キーを押すと,未読のメッセージ・リストに (>
) で示されている,メッセージ
2
を読むことができます。
たとえば,例 11-4
のように実行できます。
例 11-4:
mailx
プロンプトでのメッセージ開封
? [Return] Message 2: From root Wed Aug 4 11:17:36 1999 Date: Wed, 4 Aug 1999 11:17:29 -0400 From: root (system administrator) To: jones Subject: Welcome Welcome to the company computer network. I'm the person who manages this system. If you have questions or problems, send mail to root. You can also send mail to manager or admin; messages will be forwarded to me. I will be on vacation for the next two weeks after this week... starting Monday, August 10. I'll be stdin[Space] back on Monday, August 24. ?
例 11-4
では,
PAGER
変数が
more
(省略時の設定) に設定されているため,stdin
が表示されています。
PAGER
変数が
pg
に設定されている場合には,何も表示されません。
また,上記の例では,ユーザ Jones が
set crt=15
を
.mailrc
ファイルに追加して,mailx
環境をカスタマイズしているため,
stdin
はメッセージを 15 行表示した後に表示されます。
.mailrc
ファイルの
set crt=
は,
ページャ (pg
または
more
) を呼び出す前に,残りのメッセージの 1 回に表示する行数を指定します。
例に示すように,メッセージが 15 行を超える場合,set crt
は,15 行を表示した後にページャを呼び出すよう
mailx
に指示します。
スペース・バーを押すと,次の 15 行が表示されます。
set crt=
を使用して,自分の
mailx
環境をカスタマイズするようにしてください。
カスタマイズしない場合には,長いメール・メッセージが高速でスクロールするため,Hold Screen キーをすばやく押さなければなりません。
mailx
をカスタマイズする方法についての詳細は,11.6.2 項および付録 D
を参照してください。
他のメッセージを読むには,mailx
プロンプトに対してメッセージ番号を入力してください。
メッセージのリストを再び表示するには,
mailx
プロンプトで
h
を入力します。
例 11-5
では,ユーザ Jones は,h
コマンドを使用してメール・メッセージのリストを表示します。
最初のメッセージが未読であることを確認すると,?
プロンプトから
1
を入力してそれを読みます。
例 11-5:
mailx
プロンプトでの他のメッセージの開封
? h U 1 root Mon Jul 20 10:39 14/438 "System news" > 2 root Mon Jul 20 11:30 11/292 "Welcome" ? 1 Message 1: From root Mon Jul 20 11:30:07 1999 Date: Mon, 20 Jul 1999 11:30:04 -0400 From: root (system administrator) To: jones Subject: System news The newest release of the text processing software will be installed after 5 o'clock today. Send mail if you have questions or concerns before or after the installation. ?
ユーザが現在読んでいるメッセージを現在のメッセージと呼びます。
再読するには,Return キーを押してください。
次のメッセージを読むには,n
を押します。
すると,このメッセージが現在のメッセージになります。
すべてのメッセージを連続して読む場合は,各メッセージを読み終えるごとに
n
を押します。
これは,付録 D
で説明しているように,
gonext
変数を修正することによって変更することができます。
11.3.1 メッセージの削除
ファイルまたはフォルダに格納する前後にユーザが削除しない限り,メッセージは
mailx
に保存されています。
現在のメッセージを読後に削除するには,mailx
プロンプトに対して
d
を入力してください。
別のメッセージを削除する場合は,mailx
プロンプトで,d
コマンドの後にメッセージ番号を入力してください。
d
コマンドの後にメッセージ番号を並べて入力すると,複数のメッセージを一度に削除することができます。
たとえば,メッセージ
7
および
9
を削除するには,mailx
プロンプトで次のコマンドを入力してください。
? d 7 9
ある範囲のメッセージを削除するには,削除する最初のメッセージの番号と最後のメッセージの番号の間にハイフンを使用して指定します。
たとえば,メッセージ
7
から
11
までを削除する場合は,mailx
プロンプトで次のコマンドを入力してください。
? d 7-11
メッセージを誤って削除した場合は,u
(undelete) コマンドを使用すると,そのメッセージを回復することができます。
たとえば,メッセージ
7
を回復するには,mailx
プロンプトから次のコマンドを入力してください。
? u 7
x
の代わりに,q
または
quit
を入力して
mailx
を終了した場合,すでに読んだメッセージで削除していないものは,ホーム・ディレクトリにある,それまでに削除していないメッセージを保存するための
mbox
というファイルの最後に追加されます。
11.3.2 メッセージへの応答
メール・メッセージへの応答は,メール・メッセージへの送信と同様に実行できます。 11.2 節で説明しているように,メッセージの編集,打ち切り,メッセージへのファイルの取り込みを同様に選択できます。
メッセージを読んですぐに送信者に応答する場合は,例 11-6
のように,メール・プロンプトから大文字の
R
(reply) コマンドを入力してください。
Message 3: From deedee Mon Jul 20 14:13:32 1999 Date: Mon, 20 Jul 1999 14:13:05 -0400 From: deedee (DeeDee Smith) To: jones, mays@sf24.usernet, susannah@artwrk Subject: Testing text-processing software I think we should test the new text processing software on the older machines as well as the newer. Remember that many customers still have the older models. ? R To: deedee Subject: Re: Testing text-processing software I agree. Also, we should test different machine configurations to determine if, for example, it performs satisfactorily when run remotely. . EOT ?
R
を入力すると,受信者および表題が表示されて,受信者を確認することができます。
小文字の
r
を入力すると,元のメールの送信者のほかに受信者にも応答が送信されます。
例 11-6
では,deedee
に応答が送信されるとき,mays@sf24.usernet
および
susannah@artwrk
にも送信されます。
注意
メール・メッセージの送信者にだけ応答する場合は,メール・プロンプトで大文字の
R
を入力してください。 メール・メッセージの送信者とすべての受信者に応答する場合は,プロンプトで小文字のr
を入力してください。
例 11-6
では,ユーザ
Jones
の
.mailrc
ファイルに
set askcc
コマンドが記述されていないため,Cc:
プロンプトは表示されません。
11.3.3 メッセージの保存
x
または
exit
コマンドではなく,
q
コマンドを入力して
mailx
を終了する場合,読み終わったファイルは,ユーザのホーム・ディレクトリにある
mbox
ファイルに保存されます。
もっと有効な方法でメール・メッセージを格納するためには,以下の項で説明するように,個別に名前を付けたファイルやフォルダにそれらのメッセージを保存することができます。
11.3.3.1 ファイルへのメッセージの保存
ファイルに保存するメールには次のような種類のものがあります。
ユーザが読む短いが重要なメッセージ
mailx
によって返送されたアドレス指定を誤ったメール・メッセージ
後で印刷してから読む長いメッセージ
ユーザが読む短いメッセージ,または
mailx
によって返送されたメール・メッセージを保存する場合は,mailx
プロンプトで
s
コマンドを入力して,ファイル名を指定してください。
次の例では,mailx
コマンドによる出力の 2 番目の項目に,返送されたメッセージが表示されています。
orange% mailx Mail $Revision: 1.1.6.4 $ Type ? for help. "/usr/spool/mail/jones": 2 messages 1 new 1 unread U 1 root Mon Jul 20 10:39 14/438 "System news" >N 2 MAILER-DAEMON Wed Aug 5 09:39 19/498 "Returned mail: User unknown" ?
次の例で示すように,ユーザ Jones は,この例の返送されたメッセージを
verify-resend
というファイルに保存して,再送信する前に正しいアドレスを確認することを覚えておくようにします。
.
.
.
>N 2 MAILER-DAEMON Wed Aug 5 09:39 19/498 "Returned mail: User unknown" ? s verify-resend
ファイル
verify-resend
は,明示的にパス名を指定しない限り,現在のディレクトリに保存されます。
たとえば,ユーザ Jones は,次のようにコマンドを入力すると,サブディレクトリ
fix-later
に,このファイルを保存することもできます。
? s fix-later/verify-resend
長いメッセージの場合に,オンラインでテキスト全部を読まずに保存するには,Ctrl/C を押してメッセージのスクロールを中断し,mailx
プロンプトを表示させます。
この時点でメッセージを保存 (または削除) することができます。
次の例では,ユーザ Jones は,20 ページのレポートからなるメッセージ
1
を受信します。
Ctrl/C を押して
mailx
プロンプトを表示させ,ファイルを保存するためのコマンドを入力します。
? 1 Message 1: From smith Wed Aug 5 16:43:42 1999 Date: Wed, 5 Aug 1999 16:43:41 -0400 From: smith (Cassandra Smith) To: jones Subject: 20-page report: host configuration results Mortimer, Here's the report on host configuration that the [Ctrl/C] Interrupt ?s sys-config-report "sys-config-report" [New file] 2147/48353 ?dp
.
.
.
前の例では,ファイルを作成した後,ユーザ Jones は,mailx
プロンプトで
dp
(delete-proceed: 削除して続行) を入力して,この 20 ページの大きなファイルが
mbox
に保存されないようにし,
次のメール・メッセージの読み込みを開始します。
mailx
コマンドの
d
(delete) を入力してから Return キーを押しても,同様の処理を行うことができます。
11.3.3.2 フォルダへのメッセージの保存
メッセージを参照情報で分類して,mbox
ファイル (それ自身がフォルダ) のサイズを最小限にするには,フォルダと呼ばれるファイルにメッセージを保存します。
mbox
以外のフォルダを使用する前には,ユーザのホーム・ディレクトリにフォルダのサブディレクトリを作成し,.mailrc
ファイルにフォルダへのポインタを追加する必要があります。
たとえば,ホーム・ディレクトリに
sys-config
というディレクトリを作成する場合は,set folder=sys-config
という行をユーザの
.mailrc
ファイルに追加しなければなりません。
フォルダにメッセージを追加するには,mailx
コマンド
s
の後にフォルダ名を指定してください。
たとえば,ホスト構成についてのメッセージをそのトピックに関する他のメッセージと一緒に保存するには,次の例のように,sys-config
というフォルダにそのメッセージを書き込みます。
Message 7: From smith Thu Aug 6 09:32:09 1999 Date: Thu, 6 Aug 1999 09:32:08 -0400 From: smith (Cassandra Smith) To: jones Subject: host configuration testing According to the report that each LAN ... ? s sys-config "sys-config [New file] 11/235
フォルダに最初のメッセージを保存すると,mailx
はそのメッセージを格納して,New file
というメッセージを表示します。
そのフォルダにさらに別のメッセージを保存すると,mailx
はそれをファイルの最後に追加して,Appended
というメッセージを表示します。
mbox
以外のフォルダに保存されたメッセージを読むには,次の 2 通りの方法があります。
シェル・プロンプトで,-f
オプションとフォルダ名を指定して
mailx
を起動する。
たとえば,sys-config
フォルダを読むには,次のコマンドを入力してください。
orange% mailx -f sys-config
ユーザがすでに
mailx
にいる場合は,別のフォルダに切り替える
folder
コマンドを使用する。
たとえば,sys-config
フォルダを読んでいるときに,meetings
フォルダを読みたい場合は,次のコマンドを入力します。
? folder meetings
フォルダを切り替える場合には,mailx
は,クローズするフォルダに対して変更を加えてから,新しいフォルダをオープンします。
引数を指定しないで
folder
コマンドを使用すると,現在使用しているフォルダを確認することができます。
たとえば次のようになります。
? folder "sys-config": 17 messages
例 11-7
は,mailx
の
m
コマンドと
~f
エスケープ・コマンドを使用して,サブジェクト行とコメントを含めてメッセージ番号
3
のメッセージをユーザ
deedee
に転送する例です。
例 11-7: Forwarding a Message
? m deedee [1] Subject: forwarding a message [2] I received this note from Gary. Do you agree? [3] ~f 3 [4] Interpolating: 3 [5] (continue) ~p [6] ------- Message contains: To: deedee Subject: forwarding a message I received this note from Gary. Do you agree? From gary Wed Mar 4 16:10:48 1999 Date: Wed, 4 Mar 1999 16:10:48 -0500 From: To: csug@myhost.mydomain Subject: Forwarding Cc: smith I think forwarding should be tomorrow's topic. Gary (continue) . EOT
m
コマンドでメッセージの作成を開始します。
[例に戻る]
新しいメッセージの件名を入力します。 [例に戻る]
新しいテキストを入力します。 [例に戻る]
mailx
の
~f
エスケープ・コマンドでメッセージ番号
3
のメッセージを転送します。
[例に戻る]
mailx
コマンドは,メッセージの読み取り中であることを示し,その後,入力の受け付けが可能になるとプロンプトを表示します。
[例に戻る]
転送するメッセージが正しく取り込まれていることを確認する場合は
~p
エスケープ・コマンドを使用します。
[例に戻る]
この例に示すように,~f
および
~p
コマンドを入力した後,書き込みを続けるか,または,メッセージを終了することができます。
現在のメッセージを転送する場合は,~f
の後に番号を入力しないでください。
11.4 mailx からのヘルプ情報の参照
mailx
を起動したときにメッセージが到着している場合は,次の行がヘッダの先頭に表示されます。
Mail $Revision: 1.1.6.4 $ Type ? for help.
これは,mailx
プロンプトで疑問符 (?
) をタイプすると,例 11-8
に示すように,使用できる
mailx
コマンドの簡単な説明が表示されることを,ユーザに知らせるためのものです。
例 11-8: mailx の help コマンドからの出力
? ? Control Commands: q Quit - apply mailbox commands entered this session. x Quit - restore mailbox to original state. ! <cmd> Start a shell, run <cmd> and return to mailbox. cd [<dir>] Change directory to <dir> or $HOME. Display Commands: t [<msg_list>] Display messages in <msg_list> or current message. n Display next message. f [<msg_list>] Display headings of messages. h [<num>] Display headings of group containing message <num>. Message Handling: e [<num>] Edit message <num> (default editor is e). d [<msg_list>] Delete messages in <msg_list> or current message. u [<msg_list>] Recall deleted messages. s [<msg_list>] <file> Append messages (with headings) to <file>. w [<msg_list>] <file> Append messages (text only) to <file>. pre [<msg_list>] Keep messages in system mailbox. Creating New Mail: m <addrlist> Create/send new message to addresses in <addrlist>. r [<msg_list>] Send reply to senders and recipients of messages. R [<msg_list>] Send reply only to senders of messages. a Display list of aliases and their addresses. ============================ Mailbox Commands ==========================
q
コマンド
シェル・プロンプトに戻り,読後削除していないメッセージを,ユーザのホーム・ディレクトリの
mbox
ファイルに保存します。
x
コマンドおよび
exit
コマンド
この 2 つのコマンドは同じです。 どちらも,ユーザのメールボックスを変更しないでシェル・プロンプトに戻ります。
新規ユーザのアカウントを設定するとき,システム管理者は,mailx
の省略時の設定を
/usr/share/lib/Mail.rc
ファイルに定義します。
オペレーティング・システムで提供されるファイルには,次のような
mailx
の設定が含まれていますが,ユーザはこれを変更することができます。
set ask
Subject:
プロンプトを表示します。
set noaskcc
Cc:
プロンプトを表示しません。
set dot
空白行に 1 つのドット (.) を入力すると,メール・メッセージが終了するようにします。
set nokeep
システムのメールボックスが空になったときに削除されます。 この設定は,ほとんどのユーザにとっては重要ではありません。
set save
打ち切られたメッセージが,dead.letter
ファイルに保存されます。
ユーザは,ホーム・ディレクトリの
.mailrc
ファイルに,別名を定義したり変数を設定することにより,mailx
セッションをカスタマイズすることができます。
次の
例 11-9
では,.mailrc
ファイルの例を示します。
例 11-9:
.mailrc
ファイルの例
alias sue susannah alias wombats tom, jeff, craig, jim, ken set ask set askcc set prompt=> unset dot set record=/usr/users/hale/outgoing set folder=folder set crt=20
mailx
の
alias
コマンドを使用して,ユーザまたはユーザ・グループの代替名を作成できます。
注意
mailx
のalias
は,シェルが使用するalias
コマンドとは別のコマンドです。 シェルのalias
コマンドでメール・コマンドを変更することはできません。
継続的に使用するメールの別名を定義するには,.mailrc
ファイルに
alias
コマンドを記述して,別名と 1 つまたは複数のログイン名を指定します。
次の
.mailrc
ファイルでは,2 つの別名が定義されています。
alias sue susannah alias wombats tom, jeff, craig, jim, ken
最初の別名は,sue
という名前がユーザ
susannah
を意味するように定義されています。
これによって,ユーザは,sue
という名前を使用して,susannah
にメールを送信することができます。
2 番目の別名は,メッセージを
wombats
にアドレス指定することによって,
Wombats というチームのメンバである
tom
,jeff
,craig
,jim
,および
ken
にメールを送信することができます。
この行を別の方法で
.mailrc
ファイルに記述すると,次のようになります。
alias wombats tom,\ jeff,\ craig,\ jim,\ ken
バックスラッシュ (\
) を使用すると,1 つの長いコマンドを複数行に入力することができます。
mailx
セッションで,引数を指定しないで
alias
を使用すると,定義されている別名を確認することができます。
また,その
mailx
セッションのみで有効な一時的な別名を,mailx
プロンプトから定義することもできます。
11.6.2 メール変数の設定
メール変数は,ユーザの
.login
ファイルに設定されている変数と同様です。
バイナリ,文字列,または数字のいずれかになります。
.mailrc
ファイルにバイナリのメール変数を設定するには,set
コマンドの後にオプション名を指定して入力してください。
サンプルの
.mailrc
ファイルには,次のバイナリ変数が含まれています。
set ask set askcc unset dot
文字列のメール変数は,文字または数を値として受け入れます。
サンプルの
.mailrc
ファイルには,次の 3 つの文字列変数があります。
set folder=folder set record=/usr/users/hale/folder/outgoing set crt=20
folder
変数は,ユーザのメール・フォルダを入れるためのサブディレクトリを定義します。
この変数を設定すると,mailx
ユーティリティは,save
folder
コマンドを使用してメッセージを保存する際に,このディレクトリにファイルとしてフォルダを作成します。
mailx
ユーティリティは,このファイル名をユーザのホーム・ディレクトリのサブディレクトリとして解釈します。
record
変数は,送信する各メッセージのコピーを,指定するファイルに入れるように
mailx
に指示します。
この変数を設定しなければ,自動的にレコードが保持されることはありません。
この例では,mailx
が通常のフォルダとして扱うファイルを指定しています。
レコード・ファイルを選択するには,次のコマンドを使用します。
orange% mail -f outgoing
mailx
プログラムの代わりとして,MH (メッセージ・ハンドラ) プログラムがあります。
MH プログラムは,シェル・プロンプトから実行したいコマンドを入力して使用する,小さなメール処理プログラムの集まりです。
MH プログラムはオプションであるため,ユーザのホストにインストールされていないこともあります。
MH が利用できるかどうかを確認するには,/usr/bin/mh
ディレクトリを検索してください。
MH を使用するには,.cshrc
ファイルまたは
.login
ファイルの
set path
行を編集して,パスに
/usr/bin/mh
ディレクトリを追加しなければなりません。
その後,ログアウトして再びログインするか,または次のコマンド (C シェルの場合) を入力することにより,シェルにパスの変更を通知します。
orange% source .login
パスが
.cshrc
に設定されている場合は,このコマンドで,.login
ではなく
.cshrc
を使用してください。
Bourne,Korn,または POSIX シェルのいずれかを使用している場合には,この情報を
.profile
ファイルに追加し,次のコマンドを入力することによってシェルに通知します。
orange$ . .profile
MHプログラムを使用すると,フォルダは,mailx
のフォルダとは異なる編成になります。
新たに届いたメールや未読のメールは,inbox
と呼ばれるフォルダに保存されますが,ここには,ユーザが
inc
コマンドを使用して,システムのメールボックスに届くメールを移動します。
新しいメールの挿入は,毎回
inc
コマンドを入力して行わなければなりません。
フォルダの選択は
folder
コマンドで行います。
フォルダ名を指定せずにこのコマンドを入力すると,folder
は現在選択されているフォルダを表示します。
folder
コマンドにオプション
-all
を指定すると,フォルダのリストおよびそれぞれのフォルダ内にあるメッセージ数を表示します。
show
,prev
,および
next
コマンドを使用すると,それぞれ現在のフォルダの,現在のメッセージ,前のメッセージ,および次のメッセージを読むことができます。
show
コマンドの後にメッセージ番号を指定すると,そのメッセージが現在のメッセージになります。
たとえば次のようになります。
orange% show 7 Message 7: From deedee Mon Jul 23 10:02:10 1999 Date: Mon, 23 Jul 1999 10:01:25 edt To: hale Subject: Cafeteria hours Cc: Status: R I'm sorry you didn't ask that sooner. The cafeteria closes its breakfast service at 10. Lunch starts at 11:30.
rmm
コマンドは,現在のフォルダからメッセージを削除します。
引数を指定しないで
rmm
コマンドを使用すると,現在のメッセージを削除します。
1 つまたは複数のメッセージ番号を指定すると,指定されたメッセージが削除されます。
たとえば,メッセージ
2
,5
,および
7
を削除する場合は,次のコマンドを入力してください。
orange% rmm 2 5 7
表 11-1
に,ほとんどのMHコマンドをリストにします。
完全なリストは,
mh
(1)
コマンド | 説明 |
ali |
指定された別名のファイルを検索して,別名に対応するアドレスを表示する。 |
anno |
メッセージに注釈を付けて,メッセージの配信,転送,および応答を記録する。 |
burst |
転送されたメッセージから元のメッセージを取り出し,転送ヘッダを破棄して,元のメッセージを現在のフォルダの最後に追加する。 |
comp |
新規にメール・メッセージを作成して,テンプレートを提供し,エディタを起動してメッセージを完成できるようにする。 |
dist |
現在のメッセージを,元の配信リストにないアドレスに再配信する。 |
folder |
フォルダを選択するか,または現在のフォルダを表示する。 |
folders |
すべてのフォルダと,各フォルダに含まれるメッセージの数をリストする。 |
forw |
元のアドレス指定にはなかった受信者にメッセージを転送する。 メッセージはカプセル化され (Forwarded Message の通知を含む),ヘッダが追加される。 |
inc |
システム・メールボックスのメールを,ユーザの
inbox
フォルダに挿入する。 |
mark |
現在のフォルダにある一連のメッセージに名前を付ける。
こうしておくと,pick
コマンドを使用して,この方法でマークしたメッセージを選択できる。 |
mhl |
フォーマットされた MH メッセージをリストする。
more
コマンドの代わりに,メッセージの表示に使用できる。 |
mhmail |
指定されたユーザにメールを送信する。
ユーザを指定しない場合,mhmail
は,inc
コマンドと同じ動作をする。 |
msgchk |
システム・メールボックスや,新しく到着するメールを受信するファイルをユーザに代わってチェックして,新しいメッセージを検索する。
新しいメッセージが届いている場合,msgchk
はそれを通知する。 |
next |
現在のフォルダまたは指定されたフォルダの,次のメッセージを表示する。 |
packf |
フォルダを単一のファイルに圧縮する (各メッセージは通常,個別のファイルとして保存される)。
packf
コマンドを
pack
コマンドと混同してはならない。 |
pick |
内容,シーケンス名,または他の基準に基づいてメッセージを選択する。 |
prev |
現在のフォルダの,前のメッセージを表示する。 |
prompter |
メッセージ作成用の簡易エディタを呼び出す。
prompter
コマンドは,comp ,dist ,forw ,および
repl
によって呼び出されるため,prompter
を直接呼び出す必要はない。 |
rcvstore |
標準入力からのメッセージを直接フォルダに挿入する。 |
refile |
現在のフォルダから,1 つまたは複数のフォルダにメッセージを移動する。 |
repl |
現在のメッセージまたは指定するメッセージに応答する。 |
rmf |
フォルダ内のすべてのメッセージを削除した後,フォルダ自身も削除する。 |
rmm |
フォルダからメッセージを削除する。
メッセージ・ファイルは実際には消去されない。
代わりに,rmm
は,ファイル名の先頭に番号記号 ( # ) を付加することによってファイル名を変更する。
ほとんどのホストでは,名前が番号記号で始まるファイルは,1 日に 1 度自動的に削除される。
実際に削除されるまでは,mv
コマンドを使用してファイル名を変更することにより,削除されたメッセージを回復することができる。 |
scan |
フォルダ内のメッセージのリストを表示する。 |
send |
comp ,prompter ,またはその他のエディタを使用して作成したメッセージを送信する。 |
show |
メッセージの内容を表示する。 |
sortm |
フォルダ内のメッセージを,メッセージ・ヘッダの
Date:
フィールドに基づいて,時間順にソートする。 |
whatnow |
作成したばかりのメッセージの処理方法を指定するように求める。 ユーザは,応答する元のメッセージを再度調べたり,新しいメッセージの編集を再開したり,または,メッセージの送信に関連する他のタスクを実行することができる。 |
whom |
メッセージのヘッダをアドレスにまで拡張し,オプションとしてメッセージがそれらのアドレスに送信されたかどうかを検査する。 |
次の例は,MH の
msgchk
コマンドによる新規メッセージの報告を示しています。
orange% msgchk You have new mail waiting, last read on date
ユーザの最上位ディレクトリに
.mh_profile
ファイルを作成して,MH の機能を変更することができます。
MH リファレンス・ページに,ユーザが変更できる機能についての説明があります。
11.8 write を使用したメッセージの送受信
write
コマンドを使用すると,同一または異なるホスト上の 2 人のユーザが,ビデオ表示端末,またはメッセージを紙に印刷する方式のビデオ以外のデバイス (テレタイプライタなど) 上での通信が可能になります。
write
コマンドでは,電話による通信が不可能な相手にメッセージを送ることができます。
特に,応答を必要としない場合に便利です。
11.9 節で説明する
talk
コマンドも参照してください。
write
コマンドは受信者の端末画面にメッセージを表示します。
ユーザは,ホーム・ディレクトリの
.login
ファイルに
mesg n
コマンドを入力すると,write
および
talk
を介して通信できないようにすることができます。
スーパユーザ特権を持つユーザからのメッセージは,着信不能にすることはできません。
ローカル・ホストのユーザが
write
および
talk
コマンドからのメッセージの受信を不能にしているかどうかを確認するには,finger
コマンドを使用します。
出力結果の最初の行に
messages off
句が表示されているかどうかを調べてください。
次に例を示します。
Login name: smith (messages off) In real life: John Smith
.
.
.
リモート・ホストのユーザでは,write
および
talk
が使用不能の場合,出力行の
TTY
フィールドにアスタリスク (*
) が表示されます。
次に例を示します。
.
.
.
Login Name TTY Idle When Office chang Peter Chang *p1 2:58 Thu 10:16 103
詳細は10.2.2 項および
finger
(1)
送信しようとしている相手が,干渉を防ぐために,一時的に
write
コマンドを使用不能にするコマンドを実行していることがあります。
その場合,送信者は,受信者が明示的に
write
を無効にしている場合と同様,次のようなメッセージを受け取ります。
Write: Permission denied
これは,受信者が明示的に
write
を使用不能にした場合と同じです。
write
コマンドは,受信者がログインしている場合にだけ使用できます。
10.1 節で説明しているように,who
コマンドを使用して現在のユーザをリストします。
たとえば,ユーザ
smith
がログインしていないときに,write
を使用してメッセージを送信すると,次のようなメッセージがユーザの端末画面に表示されます。
smith is not logged on
次の手順は,ユーザ
wang
とユーザ
chung
がともにローカル・ホスト
dancer
にログインしている場合に,ユーザ
wang
がユーザ
chung
にメッセージを送信する方法を示しています。
ユーザ
wang
は,システム・プロンプトから
write
コマンドを入力する。
dancer% write chung
write
プログラムはベルを鳴らし,次のメッセージを
chung
の端末画面に送信します。
message from wang tty04 Feb 14 10:32:45
接続が確立されると,ユーザ
wang
の端末のベルが鳴ります。
ユーザ
wang
はメッセージをタイプする。
各行ごとに Return キーを押し,Ctrl/D を押してメッセージを終了します。
たとえば,wang
は,ユーザ
chung
に,次のような 2 行のメッセージを送信します。
The double-sided lab printer is working. [Return] Re-send your job and I'll check it. [Return] [Ctrl/D]
wang
が Ctrl/D を押す。
ユーザ
chung
の画面に
EOF
(ファイルの終端) シグナルが表示されて,メッセージの終わりを知らせます。
注意
Ctrl/D で受信者の画面に end-of-file (
EOF
) シグナルが表示されない場合,または,送信者の端末でベルが鳴らない場合は,システム管理者に問い合わせてください。
新しいメッセージ行の先頭で感嘆符 (!
) を使用すると,シェル・プロンプトにアクセスして,任意のオペレーティング・システムのコマンド (write
コマンドを含む) を実行することができます。
たとえば,wang
が,chung
に現在のディレクトリからファイルを検索するように指示しなければならない場合に,
現在のディレクトリ名を忘れてしまっても,次のように
!pwd
コマンドを入力して,調べることができます。
dancer% write chung You can copy the network user files from: [Return] !pwd [Return] /ufs/usr/staff/r0/net-dir/network_comm ! /ufs/usr/staff/r0/net-dir/network_comm [Ctrl/D] dancer%
write
コマンドは対話式で使用できますが,メッセージの送信者および受信者ともに,いつ相手のメッセージが終了して,応答を待っているかどうかを判断するのは容易ではありません。
たとえば,wang
が次のコマンドを入力したとします。
dancer% write chung
Wang
は,この時点で
chung
の応答を待ちますが,chung
も,wang
が引き続きメッセージを送信すると思って待つかもしれません。
問題を最小限に抑えるために,write
を対話式で使用するときは,簡潔で一時的なプロトコルを決めるとよいでしょう。
たとえば,ユーザ
wang
は,chung
に送信するメッセージを次のように始めます。
dancer% write chung I'll mark the end of each message with 'ZZZ' [Return] and wait for a reply. Please do the same. [Return] I'll install a driver for the new printer. [Return] Do you want to test it? ZZZ [Return]
詳細は,
write
(1)11.9 talk を使用したメッセージの送受信
talk
コマンドを使用すると,同一のホストまたはリモート・ホスト上の別のユーザに,対話式で,write
を使用するよりも容易に,メッセージを送信することができます。
ただし,talk
は,ビデオ表示端末だけで使用できます。
write
コマンド同様,talk
を使用して,電話で連絡できない相手にメッセージを送信することができます。
また,write
コマンドと同様に,talk
コマンドは,メッセージを直接端末に送信して,応答が入力されるまで送信を続行するため,受信者の作業を中断させる場合があります。
talk
(および,前述のように
write
) からのメッセージ (スーパユーザ特権を持つユーザからのメッセージを除く) の受信を不能にするには,
.login
ファイルに
mesg n
コマンドを入力します。
受信者がこれを実行しているかどうかを確認するには,10.2.1 項または
finger
(1)finger
コマンドを使用してください。
オンラインの
talk
セッション時には,送信ウィンドウおよび受信ウィンドウが各ユーザの端末でオープンされます。
talk
が受信ウィンドウに他のユーザがタイプしている内容を表示する間に,ユーザは送信ウィンドウにタイプすることができます。
たとえば,同じローカル・ホスト
apple
上のユーザ
hoover
にメッセージを送信するには,ユーザ
coolidge
は,次の
talk
コマンドを入力します。
apple% talk hoover
すると,プログラムは,coolidge
の端末画面を二分割して,上半分を
coolidge
に,下半分を
hoover
にそれぞれ割り当てます。
その後,次のメッセージが画面の最上部に表示されます。
[No connection yet]
接続が確立すると,次のメッセージが表示されます。
[Waiting for your party to respond]
このメッセージ後に,hoover
の端末でベルが鳴り,次のメッセージが表示されます。
Message from Talk_Daemon@apple at 16:18 ... talk: connection requested by coolidge@apple talk: respond with: talk coolidge@apple
hoover
がすぐに応答しない場合は,次のメッセージが
coolidge
の画面に表示されます。
[Ringing your party again]
hoover
が応答すると,接続が確立したことを通知するメッセージが
coolidge
の画面に表示されます。
各ユーザはこの時点でテキストを入力することができます。
画面がいっぱいになると,talk
は,画面の初めの部分からテキストを重ね書きしていきます。
どちらのユーザも,Ctrl/C を押して通信を終了することできます。
talk
セッションの終了時には,次のように表示されます。
[Connection closing. Exiting]