CNSのUNIX環境でメールを読むには,Mule上で動作するMew(Messaging in the Emacs World)と呼ばれるメールクライアントを利用する.
Mewを起動するには,Muleを起動してM-x mewと入力する.すると,起動画面(図2.1)が表示された後,受信メールの一覧が表示される.この受信メールの一覧が表示されている状態をSummaryモードと呼ぶ.Mewでは起動時にメールサーバに新しくメールが到着している場合,メールを受信する.メールの受信中は,エコーエリアに`Incing...'と表示され,受信が終了すると`Incing...done'と表示された後,新しく到着したメールが一覧に追加される.新しいメールが到着していない場合,`No new mail'と表示される.
|
Mewでは,Summaryモードで一覧に表示するメール番号の範囲を,Rangeを用いて指定できる.
`Range (update): 'とエコーエリアに表示されたら,必要なRange(表2.1)を入力し,<RET>を押す.すると,Summaryの一覧が,指定した範囲で再表示される.この例の場合,何も入力せずに<RET>を押すと,( )の中に囲まれているupdateが選択される.
この例に限らず,Mewではエコーエリアに質問が表示されたとき,何も入力せずに<RET>を押すと,( )の中に示されている値が選択されたものとして実行される.
|
Mewのメール操作を終了するにはQを押す.すると,エコーラインに次のように表示されるので,yを押すと,Mewは終了する.
Quit Mew? (y=RET n=SPC)_
メールサーバに新たに到着したメールを受信するにはSummaryモードで iを押す.すると,M-x mewを実行したとき同様,`Incing ...'と表示され新しいメールが到着している場合はそれらが受信され,一覧に追加される.新たにメールが到着していない場合はエコーエリアに`Nonew mail'と表示される.
Summaryモードでメールの内容を読むには,<SPACE>を押す(図2.3).メールの内容が長い場合はウィンドウに1度にすべての内容を表示できない.メールの続きの部分を表示させるには<SPACE>を押し,前のページに戻るには<BS>を押す.1つのメールの表示から次のメールの表示に移るには<SPACE>かnを,前のメールに戻るには pを押す.
Summaryモードに表示されている範囲よりさらに古いメールを読みたいときや,逆に比較的新しいメールのみの表示に変える場合には, sを押して,表示するRangeを入力し<RET>を押す.指定したRangeの範囲でメールの一覧が再表示される.
Summaryモードでwを押すと,新規に作成するメールの本文を書くウィンドウが表示される.
To: _ Subject: X-Mailer: Mew version 1.70 on Emacs 19.28.1 / Mule 2.3 Mime-Version: 1.0 --
この状態を``Draftモード''と呼ぶ.このモードでは,Muleでのファイル作成と同様の操作で,メールを作成できる.
なお,以前にメールを送ったことのある相手のアドレスであれば,To:およびCc:フィールドの入力中に,他と区別のつくまで入力した時点で<TAB>を押すと,残りの部分が補完される.
To: s99000hf Cc: t99000tf Subject: Report_ X-Mailer: Mew version 1.70 on Emacs 19.28.1 / Mule 2.3 Mime-Version: 1.0 --
To:,Cc:,Subject:を入力したら, -- の下の行にカーソルを移動して,本文を作成する(図2.4).
ホームディレクトリの下に.signatureという名前のファイルを用意し,その中に自分の署名を書いておくと,メールを送る前にC-c <TAB>またはC-c C-iを入力することで,その内容をメール本文に付加できる..signatureの内容は,4行程度の簡潔なものにすること.次に.signatureファイルの例を示す.
-=-=-=-=-=-=-=-=-=- Taro Fujisawa Faculty of Environmental Information URL http://www.sfc.keio.ac.jp/ t99000tf
メールの作成を途中で中止するときには,C-c C-qを入力する.エコーエリアに次のように表示されるので,yまたは <RET>と入力することで,Summaryモードに戻る.
Kill Draft message? (y=RET or n=SPC) _
本文を作成したら,C-c C-mを入力するとヘッダ部分の最後に次に示す2行が加えられる.
Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit
続けて,C-c C-cを入力すると実際にメールが送信される.
受信したメールに対して返事を書くには,Summaryモードで返信するメール番号にカーソルを合わせ,aを押す.
To:フィールドやCc:フィールドなどのメールヘッダがMewによって自動的に作成され,返信メールを作成する状態(Draftモード)になる(図2.5).このとき,Muleの画面は3分割され,1番上がSummaryモードのバッファ,中央がメールの内容を表示するMessageモードのバッファ,1番下が返事を書くためのDraftモードのバッファとなる.
Mewでは返信メールを作成する状態で,もとのメールの本文の内容を簡単に引用することができる.DraftモードでC-c C-yを入力することで,もとのメールの本文の内容が,各行の先頭に`>'が付加された形で本文に挿入される(図2.5).また,Summaryモードでaを押す代わりにAを押しても同様の効果が得られる.
同様に,Mewでは複数のメールからの引用が簡単に行える.メールの返信を作成する際,画面が3分割されるので,C-x oもしくはマウスでクリックしてSummaryモードにカーソルを移動する.引用するメールを<SPACE>で選択すると,2番目のバッファにそのメールが表示される.その状態でDraftモードのバッファにカーソルを戻してC-c C-yと入力すれば,Draftモードのカーソルがある位置に選択されたメールを引用できる.
Mewでは,マルチパートメッセージという種類のメールを扱える.マルチパートメッセージとは,メールに画像ファイルやバイナリファイルなどを独立したパートとして添付したものである.メールの受信者は簡単にそのパート部分を取り出してファイルとして保存,編集などを行える.
ただし,メールを受け取る側が必ずしもマルチパートメッセージを正しく読めるとは限らない.例えば,CNS内部であっても,相手がメールを読むのにMewを使っていなければ,文章以外は正しく表示されず,画像などは無意味な文字列になってしまう.マルチパートメッセージを送る際は,相手がマルチパートメッセージを読める環境にあることを確認してから送ること.
マルチパートメッセージの各パートのデータ形式は,表2.2に示すものが利用できる.データ形式はファイル名の拡張子から自動的に判断される.なお,Image/gifなどのデータの表現形式のことを,Content-Typeと呼ぶ.
SummaryモードでMマークがついているメールは,MIMEのマルチパートメッセージである.次のように表示されているSummary一覧があるとする.
_ 32 05/17 Tarou Fujisawa Re: New Design <<藤沢です.この前の件ですが,どう 33 M05/17 Hironori Kusuda Re: NewDesign<<----Next_Part(Sat_Feb__8_13 34 05/17 Hanako Fujisawa Thanks. <<花子です.できたらお願いしたいのですが
ここで,カーソルをMマークがついたメールに移動させて <SPACE>を押すと,マルチパートメッセージの各パートのContent-Typeが表示される.
32 05/17 Tarou Fujisawa Re: New Design <<藤沢です.この前の件ですが,どう _ 33 M05/17 Hironori Kusuda Re: New Design <<----Next_Part(Sat_Feb__8_13: 1 Text/Plain 2 image/jpeg 34 05/17 Hanako Fujisawa Thanks. <<花子です.できたらお願いしたいのですが
もう1度<SPACE>を押すと,パート1の内容が下のウィンドウに表示され,図2.6のような画面になる.さらにもう1度 <SPACE>を押すと,この例ではパート2は文章ではなくJPEG形式の画像ファイルなので,エコーエリアに次のように表示される.
Start xv? (+circle): (y=RET or n=SPC) _
ここでyまたは<RET>を押すと,xvが起動され,パート2の内容の画像が表示される.
このように,マルチパートメッセージを表示している状態で<SPACE>を押していくと,次のパートが順次表示されていく.また,パートが文書ではない場合は,画像や音声などといったデータ形式に応じて,自動的に適当なツールが起動され,パートの表示や再生が行われる.
また,データ形式によっては適当なアプリケーションが見つからない場合がある.そのようなデータが含まれたアプリケーションを表示した場合,次のように,そのパートに含まれたデータをバイナリファイルとしてホームディレクトリに保存する.
Save this part? (y=RET or n=SPC) _
ここでyと押すと保存するファイル名をの入力を求められるので,ファイル名を入力する.
File:~/_
MIMEメッセージで送られたメールは,画像や音声などのデータ形式を含んでいるが,メールを受信した時点では符号化された文字列を含むテキストファイルとなっている.これを別のファイル名で保存するためには,Summaryモードでマルチパートメッセージを表示している状態で,次のように保存するデータのパートの行にカーソルを合わせ,yを押す.
32 05/17 Tarou Fujisawa Re: New Design <<藤沢です.この前の件ですが,どう 33 M05/17 Hironori Kusuda Re: New Design <<----Next_Part(Sat_Feb__8_13 1 Text/Plain _ 2 image/jpeg 34 05/17 Hanako Fujisawa Thanks. <<花子です.できたらお願いしたいのですが
ファイル名を求められるので,エコーエリアにファイル名を入力すると,データをメールから切り離してファイルとして保存できる.
マルチパートメッセージを作成するには,Draftモードで本文を入力した後, C-c Mを入力する.すると,本文の最後に次の5行が追加される.
----------- attachments ----------- 123/ Multipart/Mixed 1 CoverPage Text/Plain(guess) 2 . --------0-1-2-3-4-5-6-7-8-9--------
この部分を,メールの本文と区別して``添付領域''と呼ぶ.添付領域はメールを構成するパートのリストであり,このリストに添付するファイルを指定してマルチパートメッセージを構成する.
添付領域の各行は,パート番号,パートの名前,パートのデータ形式の3つのフィールドからなる.この例では,1行目の123/と表示された行が,このメール全体を表している.1通のメール全体としてのデータ形式はマルチパートメッセージ形式なので,Multipart/Mixedと表示されている.2行めのCoverPageと表示された行は,さきほど作成した本文領域を意味している.本文領域のデータはテキスト形式なので, Text/Plainと表示されている.
新しくパートを加えるには,一番下のパートの行,この例の場合だと`2 ._' の行の`.'にカーソルを移動し, cを押す.すると,エコーエリアに次のように表示されるので,新たなパートとして加えるファイルのパスを入力する.
Copy from : ~ /image/rabbit.gif_
エコーエリアに次のように表示されるので,添付する際のファイル名を入力し, <RET>を押す.
Copy to (rabbit.gif): _
次のように添付領域の表示が変り,図2.7のような画面になる.これでrabbit.gifがパートとして加えられたことになる.同様にして,他の文書やプログラムソースなどのファイルも新たなパートとして加えられる.
次に,CNSのホームディレクトリに保存されている,MicrosoftExcelで作成したsample.xlsというファイルをメールに添付して送る例を示す.
まず,メールの本文を作成し,C-c Mを入力して添付領域を作成し,cを入力してsample.xlsを新しいパートとして追加すると,添付領域が次のような画面になる.
----------- attachments ----------- 1/ Multipart/Mixed 1 CoverPage Text/Plain(guess) 2 _ sample.xls Text/Plain(guess) 3 . --------0-1-2-3-4-5-6-7-8-9--------
このままだとsample.xlsがテキストとして認識されてしまっているので,明示的にバイナリファイルとして認識させる必要がある.カーソルをバイナリファイルとして認識させたいパートに移動し,Tを入力するとエコーエリアに次のように表示されるので,Application/Octet-streamと入力する.
Type for sample.xls (Text/Plain): Application/Octet-stream_
sample.xlsのパートのContent-TypeがApplication/Octet-streamに変更される.次にBase64という方法で符号化(encode)するために,カーソルをバイナリファイルとして認識させたパートに合わせたまま,Bを押すと,次のような画面になる.
----------- attachments ----------- 1/ Multipart/Mixed 1 CoverPage Text/Plain(guess) B 2 _ sample.xls Application/Octet-Stream 3 . --------0-1-2-3-4-5-6-7-8-9--------
すべてのパートを追加し終わったらC-c C-mを入力すると,マルチパートメッセージを送信するための情報が挿入されるので,確認した後,C-c C-cを入力する.
マルチパートメッセージの作成および送信が終了すると,一時的に使っていたディレクトリを消してよいか尋ねられるので, yまたは<RET>を押す.
Folder +Drafts/mime/1 exists. Remove it? (y=RET or n=SPC) _
本文を書かずにテキスト以外のファイルだけを添付すると,相手にわかりにくい場合もあるので,テキスト以外の形式のファイルをMIMEで送信する際には,本文領域に説明の文章をつけ加えるとよい.
マルチパートメッセージを作成中の添付領域では, cコマンドで新しくパートを加える以外にも,表2.3に示した操作を行える.操作を行うパートにカーソルを持っていき,コマンドを入力する.
|
表2.2および表2.3にあるExternal Bodyとは,参照情報のみを持つ特殊な形式のパートである.External Bodyのパートは,実際のデータではなくURIなどのデータへの参照情報のみを持つ.これを使うことによって,WWW などで公開されているデータへの参照情報のみを1つのパートとして送れる.
CNSのユーザ同士でやりとりするメールであれば,External bodytypeとしてlocal-fileを指定し,そのファイルへの参照情報を送ることでファイルそのものを送ることなく受信者はファイルを表示できる.
メールの実際の中身は次のようなファイルの置かれている位置情報だけで,ファイルそのものを送るわけではないが,受信者はMewの中でそのファイル(図2.8の例では/home/s99000hf/eguegu.tex)の内容を表示できる.
--Next_Part(Sun_Feb_21_12:45:23_1999)- Content-Type: Message/external-body; access-type=local-file; name="/home/s99000hf/eguegu.tex"; expiration="21 Mar 1997 00:00:00"; size=" " Content-Type: text/plain --Next_Part(Fri_Feb_21_12:45:23_1997)-- |
不要なメールを残しておくことはファイル空間の無駄となるだけでなく,ユーザの利便性の観点からも望ましくない.メールの削除や`リファイル(refile)'による整理を行う必要がある.
リファイルとはホームディレクトリのファイルをディレクトリを作成して整理するように,関連のあるメールを~
/Mailの下にディレクトリを作成して整理することである.ユーザは各メールクライアントを用いて簡単にリファイルを行える.
Mewでは,Summaryモードで整理する内容に応じてマークを付ける.これをマーキングと呼び,マークには消去,リファイルなどがある. メールを整理するには,まずマーキングを行い,次に実行(eXecute)を意味するxを入力する.
不必要なメールを消去するには,Summaryモードで消したいメール番号にカーソルを移動してdを押す.するとメール番号と日付の間に消去(Delete)を意味するDマークがつく.
29D 04/20 Hanako Fujisawa New Term <<花子です.学校はじまったけど調子 _ 30 04/22 Hanako Fujisawa report <<またまた花子.昨日の玲ちゃんすごかっ 31 04/22 Hanako Fujisawa meeting <<はなぴょんです.来週の打ち合せにつ
メールをリファイルするには,Summaryモードでリファイルするメール番号にカーソルを移動し,oを押す.すると,エコーエリアに次のように表示される.
Folder name (+circle): +_
ここで,リファイル先のディレクトリ名をcircleなどのように入力する.このとき,入力したディレクトリが存在しないと,次のように新しいリファイル先ディレクトリを作成するかどうか尋ねられる.
No Folder +circle exists. Create it? (y=RET or n=SPC) _
ここでyまたは<RET>を入力すると,
~
/Mail以下にcircleというディレクトリが作成される.また,Mewではリファイル先の名前を入力する際に,(+circle)などのようにFrom:などの値からリファイル先をMewが推測して表示するので,正しいときは<RET>を押せばよい.
このようにしてリファイルするディレクトリを指定すると,カーソルのあるメールの番号の後にoマークがつく.
31 04/22 Tarou Fujisawa ryuugaku <<気をつけてロンドン行ってきて下さい _ 32o 04/23 Hanako Fujisawa Re: ryuugaku <<私が帰ってくるまで待ってくれな 33 04/23 Hanako Fujisawa Thanks!! <<大きな花束ありがとう.すごく嬉しか
Mewではマーキングを行っても,xを押して処理を実行しない限り,マークを外して処理を取り消すことができる.マークを外すには,マークを外すメール番号にカーソルを移動してuを押す.またU を押すと,Summaryモードで,メールについている任意のマークをすべて外せる.Dマークがついているメールがあり,そのすべての Dマークを外す例を以下に示す.
1D 04/20 Hanako Fujisawa New Term <<花子です.学校はじまったけど調子はど _ 2D 04/22 Hanako Fujisawa report <<またまた花子.昨日の玲ちゃんすごかった 3 04/22 Hanako Fujisawa meeting <<はなぴょんです.来週の打ち合せだけど 4D 04/22 Tarou Fujisawa How are you ? <<ふじさわ.最近どうよ?
ここでUを入力するとエコーエリアに次のように表示されるので, Dを入力する.
Input mark :D_
するとSummaryモードですべてのDマークを外せる.
1 04/20 Hanako Fujisawa New Term <<花子です.学校はじまったけど調子はど _ 2 04/22 Hanako Fujisawa report <<またまた花子.昨日の玲ちゃんすごかった 3 04/22 Hanako Fujisawa meeting <<はなぴょんです.来週の打ち合せだけど 4 04/22 Tarou Fujisawa How are you ? <<ふじさわ.最近どうよ?
マーキングを行って,実際に消去やリファイルを行うには,eXecute(実行)を意味するxを入力する.一度xを入力すると処理を取り消せないので注意すること.特に,消去の処理を行ったメールは復旧できない.
新着メールが取り込まれるinboxフォルダも,他のフォルダと同様にMailディレクトリの中にディレクトリとして存在している. inboxフォルダは,ユーザが自分で作成しなくてもあらかじめ用意されており,新着メールを読み込む際にはinboxフォルダに読み込まれる.
inboxフォルダからリファイルしたメールを読むときは,Summaryモードでgを押す.次のようにディレクトリ名の入力を求められるので,リファイルする場合と同様にリファイル先を入力する.
Folder name (+inbox): +_
エコーエリアに`Range(update): 'と表示されるので,必要なRangeを入力すると,そのディレクトリ内の指定したRangeでメールの一覧が表示される.
ユーザのホームディレクトリにはMailというディレクトリがあり,受信したメールはこの中にすべて保存される.例えばユーザt99000tfのcircleにリファイルされた1通目のメールは /home/t99000tf/Mail/circle/1というファイルである.(2.9)このファイルは普通のテキストファイルなので, moreやcp,mvなどのコマンドで表示,コピー,移動したり,a2psやlprコマンドを使って印刷できる.次に inboxディレクトリの10通目のメールを印刷する例を示す.
% a2ps -p ~/Mail/inbox/10 | lpr -P[プリンタ名]
メールの削除やリファイルを行うと,Summaryモードで表示されるのメール番号に欠番が生じる.1から番号を振り直すにはOを押す.例えば,次のように2, 3, 5, 6番が欠番になっている状態であるとする.
1 04/20 Hanako Fujisawa New Term <<花子です.学校はじまったけど調子はど _ 4 04/22 Hanako Fujisawa report <<またまた花子.昨日の玲ちゃんすごかった 7 04/22 Hanako Fujisawa meeting <<はなぴょんです.来週の打ち合せだけど,
ここでOを入力すると,エコーエリアに次のように表示されるので,yまたは<RET>を入力すると,番号のつけ直しの処理が始まる.
Pack +inbox? (y=RET or n=SPC) _
処理が終わるとSummaryを表示し直すため,エコーエリアに次のように表示されるので,Rangeを指定する.
Range (update): _
指定したRangeに応じて,次のように番号がつけ直されて表示される.
1 04/20 Hanako Fujisawa New Term <<花子です.学校はじまったけど調子はど _ 2 04/22 Hanako Fujisawa report <<またまた花子.昨日の玲ちゃんすごかった 3 04/22 Hanako Fujisawa meeting <<はなぴょんです.来週の打ち合せだけど,
この際,Dマークやoマークがついていたメールに関しては,xを入力したとき同様に削除やリファイルが実行された後で番号がつけ直される.
Mewでは,メールの送信者や宛先,Subjectなどの条件からメールを検索できる.検索に利用できる条件を表2.4に示す.
Summaryモードで/を入力すると,エコーエリアに次のようなメッセージが表示されるので,ここに検索対象とするディレクトリを入力する.
Folder name (+inbox): +_
例えば,ディレクトリinboxの中にあるログイン名s99000hfのユーザからのメールを検索するには,まずinboxと入力する.するとエコーエリアに次のように表示される.
Pattern (-from) : -_
ここにはfromやto,cc,subjectなどの検索対象(表2.4)を入力する. <TAB>を押すことで候補の一覧の表示や,補完もできる.またここで -andや-orを入力すると,複数の検索対象に対する検索が可能となる.この例では,fromを入力すると,次のように尋ねられる.
Value for -from : _
ここで検索の条件値を入力する.この例ではs99000hfと入力し, <RET>を押す.すると検索処理が始まり,エコーエリアに`Pickingmessage in +inbox ...'という検索中であることを示すメッセージが表示された後,検索条件に一致したメールの一覧が表示される.再び他のメールも表示し直すにはsコマンドで一覧を表示し直す必要がある.
次に2つの条件を組み合わせて検索する例を示す.この例では-fromフィールドにs99000hfを含み,かつ-subject にreportを含むメールを検索している.
まず,複数条件の組み合わせをするため-andを指定する.
Pattern (-from) : -and_
次に最初の検索対象を指定する.この例では,-fromを第1検索対象とする.すでに-fromが提示されているので,この例では<RET>を押すだけでよい.
Pattern1 for -and (-from) : <RET>
誰から受けとったメールを検索するのかを入力するため, -fromに条件を入力する.
Value for -from : t99000tf_
さらに,この例では第2検索対象にsubjectを指定する.
Pattern2 for -and (-from) : -subject_
検索したい条件を入力する.
Value for -subject : report_
以上を入力すると,実際にメールの検索が行われ,検索結果の一覧が表示される.
|
複数のディレクトリから条件にあるメールを選び出し,あるMule上の仮想的なバッファにまとめて検索結果をすることもできる.この表示用フォルダを仮想フォルダと呼ぶ.複数のディレクトリからメールを検索するには,SummaryモードでVを入力する.次に仮想フォルダ名の入力を求められるので,エコーエリアに任意の文字列を入力する.単に<RET>を押すと,仮想フォルダは`++virtual'になる.
Virtual folder name (virtual): _
次に検索する単数,または複数のディレクトリ名を入力する.複数のディレクトリを入力する場合は,以下のように,で区切る.またフォルダ名に*を指定すると,すべてのフォルダから検索できる.
Folder name (+inbox): +inbox,+circle,+class_
そして検索条件を入力する.
(-from) : -_
すると,指定した複数のディレクトから検索条件に一致したメールが仮想フォルダに集められ,Summaryモードで表示される.仮想フォルダはSummaryモードでは,oマークによるリファイル,Dマークによる消去,検索はできない.