共通科目情報処理(上級)、インターネットの仕組み、2005年01月31日 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2005-01-31
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/ipe/
http://www.coins.tsukuba.ac.jp/~yas/
http://www.ipe.tsukuba.ac.jp/~yshinjo/
電子メール は、電話や(普通の)手紙と同じように、個人と個人の間で情報を交換するた めの仕組み。
電子メールを読み書きするプログラムは、 メール・リーダ(mail reader) または、 メーラ(mailer) という。 「リーダ(reader)」といっても、書くこともできる。
種類
電子メールを使う上で重要な考え方
1通の電子メールは、次のような形式を持っているテキスト(文字データ。
From: Shiro Yagi <shiro@is.tsukuba.ac.jp> To: kuro@cc.tsukuba.ac.jp cc: shiro@is.tsukuba.ac.jp Subject: Visit my WWW page Date: Sun, 21 Mar 2004 23:16:30 +0900 (JST) Message-Id: <200403221416.XAA04621@poplar.is.tsukuba.ac.jp> こんにちは。白やぎです。 WWWページを作ったので見てください。URL は、 http://www.is.tsukuba.ac.jp/~shiro/ です。 ♪♪ 白やぎ ♪♪ http://www.is.tsukuba.ac.jp/~shiro/
多くのメール・リーダでは、1通の電子メールのことを メッセージ(message) と呼んでいる。
電子メールのテキストは、大きくヘッダと本文に分かれる。
From:
To:
Cc:
Date:
Subject:
From:
には、差出人の、
To:
と Cc:
には、受取人の電子メール・アドレスが置かれる。
電子メール・アドレス(e-mail address)
とは、電子メールを届ける時に配送プログラムが使う記号。
現在よく使われている形式:
user@domain「
@
」より前の部分は、個人を特定するための情報。
「@
」より後ろの部分は、
電子メールをどのコンピュータに届ければいいかを示している。
ドメイン形式のホスト名が使われる。
To:
: とCc:
: は、受取人の電子メール・アドレスが置かれる。どち
らにアドレスを書いても同じように届けらるが、To:
は、本来の宛先を
書き、Cc:
にはついでに連絡したい宛先を書く習慣になっている。Cc は、
Carbon Copy に由来する。
Date:
は、電子メールが出された日付と時刻。
Subject:
は、題名(題目、表題)。
電子メールの本文は、普通のテキストですが、1行の長さがだいたい漢字で3 0文字〜35文字、英語のアルファベットで60文字〜70文字になるように、 折り返されている(改行が入っている)。このようにしておくと、引用という 機能を利用する時に便利。
電子メールで 引用 とは、返事などを書いたときに何に対する返事か分かりやすいように他の人の 書いた電子メールの一部を自分の電子メールに含めること。
本文の末尾には、 署名 ( シグニチャ(signature) ) が現われることが多い(付けなくてよい)。
署名とは、普通の手紙の末尾に署名をするのと同じように、末 尾に自分の名前や自分独自の記号を書く。署名は、簡潔で短いものが好まれて いる。1つの目安としては、「4行以内」。
電子メールは、「 メール・ボックス 」と呼ばれている ファイル に保存される。メール・ボックスは、プログラムによっては、 フォルダ(folder) と呼ばれることもある。 メール・ボックスには、次の2種類がある。
/var/spool/mail/user
や
/var/mail/user
という名前のファイル。
(icho では ~/Mailbox
)
メール・リーダが表示するのは、多くの場合、後者のメール・ボックスである。 新しく届いたメールを読む時には、前者から後者へメールを移す必要がある。 この作業を、 「 (電子メールを)取り込む(incorporate) 」とう。
配送プログラム用メール・ボックスは、1つのサーバで1人で1つだけだが、 ユーザ用メール・ボックスは、必要に応じていくつか作ることができる。
電子メールをため込んでいるコンピュータ(サーバ)にあるメールを、手元の コンピュータにコピーするには、 POP (Post Office Protocol)や、 IMAP(Internet Message Access Protocol) という TCP/IP 上に定義された通信プロトコルを使うことがある。
POP では、配送プログラム用メール・ボックスを読み書きする機能がある。 IMAP では、それに加えて、複数のユーザ用メール・ボックスを扱えるように なっている。
電子メールで仕事をしていると、単にメールを出すだけではなく、受け取った
電子メールに対して返事を出すことが多い。そのため、メール・リー
ダでは、返事を出す作業を簡単に行うことができるようになっている。返事
を出すことを
リプライ
するともいう。返事を出す時には、To:
が自動的に作られるだけで
なく、Subject:
も同じもの、あるいは、にRe:
が付い
たものが自動的に付けられる。
電子メールで返事を出す時には、相手のメールの内容を引用することがある。
この時、相手が書いた部分と自分が書いた部分を区別するために、相手
が書いた部分の行の先頭には、引用のための記号を付ける習慣がある。こ
の記号には、「>
」や 「>>
」、
タブがよく使われる。
受け取ったメールを、別の人に送ることを、 転送(forward) という。 多くのメール・リーダでは、手作業で転送できるようになっている。
複数のメール・アドレスがある人は、あるアドレスに届いた「全て」のメールを、 別のメール・アドレスの所に自動的に転送できる場合がある。 については、
メールの数が増えてきたら
多くのメール・リーダは、長いアドレスや複数のアドレスを短い 別名(alias) で参照できるようになっている。 別名には、個人で付けるものの他に、システム全体で付けるものがある。
Re:
は、「〜に関して」という意味の単語で、英和辞書にも載っている。英語の
手紙、特にビジネスの分野では、日常的によく使われる。返事をする時に使
われるので、reply の略だと思っている人も多い。
電子メールでも普通の手紙でも、最初にメールを送る時には、
Re:
がないSubject: で出し、それについて返事を出す時には、
元のサブジェクトの前に Re:
を付けた形の Subject:を使う。
一般的な習慣では、返事に対する返事の場合でも、Re:
の数は
増えない。
特に関係のない人に届いてしまう危険性に注意する。
間違えないようにするには、できるだけキーボードから手で打たないようにす
る。メール・リーダの「返事を出す(reply)」機能を使うと便利な場合が多い。
ただし、メーリング・リストなどで、Reply-To:
が付いていたりする時
には、注意が必要になる。
コピー&ペースト機能を使う方法もある。
電子メールを分類するための大事なキーワードになるので、忘れずに付ける。 内容を表わす簡潔なものにする。署名は、簡潔で短いものが好まれている。「JUNETの手引き第1版」で既に 現われている目安としては、「4行以内」というものがある。
返事を出す時には、最初は、相手のメールの内容がすべて引用された状態から 出発することが多いが、必要な部分だけを残して、不要な部分を 消すようにする。 電子メールの大きさは、「1通あたり数10kにすべし」という時代が あったが、今では、数10Mバイトのメールを送っても平気な環境もある。大きな電子メールはトラブルの元になりることが多いので、送る時には慎重に する。
テキスト以外のデータを電子メールで送る時には、相手が読めるかどうかを確 認してから送る。
ある事柄を他人に伝えるのに、本当に電子 メールが有効とは限らない。 電話などの記録に残らないメディアが便利な場合もある。暗号を使っていない限り、電子メールは、葉書と同じで、 除かれる形で配送される。特にシステム管理者は、誰の電子メールを 読もうと思えば読める状態になっている。 途中で誰かに見られると非常に困るような内容は、電子メールで送るのには危 険がある。また、ディジタル署名が付いていない電子メールの場合、本当にそ の本人が出したものなのか、確認する方法はない。
電子メールという媒体を使ったとしても、世の中とは無縁ではない。目 上の人、知らない人に電子メールを出す時には、注意する。紙の手紙のよ うに季節の話題を必ず入れる必要はないが、失礼のないような表現を 使う。電子メールでも挨拶をするのは、よい習慣である。 電子メールは、受け取ったらできるだけ早く返事を出すという習慣がある。 そうしないと、送った相手が読んだかどうかわからないからです。返事が来な いと、相手が読んだのかどうか、途中でエラーで失われたのかどうかと不安に なる。内容によっては、すぐに返事が出せない時には、 「受け取りました」ということだけでも先に出す。
ヘッダには、次のような項目 ( フィールド(field) ) が含まている。
From:
To:
Cc:
To:
には、本来の宛先を書き、Cc:
にはつい
でに連絡したい宛先を書くために書く。電子メールを送る時に、
Cc:
に自分の電子メール・アドレスを書けば、自分が送った
電子メールを保存することができる。Cc は、Carbon Copy に由来する。
Subject:
Date:
Message-Id:
Reply-To:
From:
に書かれているア
ドレスが使われる、Reply-To:
がある場合には、それが優先される。
In-Reply-To:
Message_Id:
やFrom:
、Date:
から作られる。
name: value1行に収まらない時には、2行目以降の行の先頭 にタブや空白が置かれる。たとえば、次のような形式になる。
Subject: Long long long long long long long long very long subject
Cc:
とよく似たものにBcc:
と Fcc:
がある。
Bcc:
は、blind carbon copy という意味で、そこに電子メールのアドレスを書くと
To:
やCc:
と同じように電子メールが送られるが、
Bcc:
は、電子メールを送るプログラムによって
削られてしまうので、最終的なメールには残らない。
Bcc:
は、コピーを送ったことをTo:
や
Cc:
に知られたくない時や自分用の控えのために使われる。
Fcc:
は、file carbon copy という意味で、そこには電子メールのアドレスではな
く、ファイル名を書く。メール・リーダは、メールの内容をそのファイル
に保存し、配送プログラムに渡す前にFcc:
を削除します。
Bcc:
はほとんどのメール・リーダで使えるが、
Fcc:
はメール・リーダによっては使えない。
電子メールのアドレスが、From:
や To:
やCc:
に現われ
る時には、次のような形で現われることもある。
From: shiro@is.tsukuba.ac.jp (Shiro Yagi)ここで、括弧の中には、ユーザの本名を英語やローマ字で書いたものが現われ る。この部分は、人間が読むためのもので、電子メールを配送するプログラ ムは使わない。ユーザの本名は、次のような形式で付加されることもある。
From: Shiro Yagi <shiro@is.tsukuba.ac.jp>この場合、電子メール・アドレスは、必ず
<>
で括る。
電子メールを出す時には、To:
やCc:
に
「,
」で区切って複数のアドレスを書く
こともでる。
To: shiro@is.tsukuba.ac.jp, kuro@is.tsukuba.ac.jpもし、1行に入り切らない時には、次のように複数行に分けて書く。
To: shiro@is.tsukuba.ac.jp, kuro@is.tsukuba.ac.jp, aka@is.tsukuba.ac.jp, momo@is.tsukuba.ac.jp, midori@is.tsukuba.ac.jp2行目以降は、行の先頭にタブや空白を置く。
ヘッダ部分は、漢字を使うことにはいくつか問題がある。まず、
From:
、To:
、Cc:
などの電子メールのアドレスを書くべき
所には、JISコードで直接漢字を入れることはできない。
MIMEという形式を使ってうまく符号化して漢字を
含める機能を持っているメール・リーダもある。
メール・ボックスのモードには気を付けてる。
サーバ上で
ls -l
コマンドで調べて、
ファイルの場合は600 (rw-------
) 、ディレクトリの場合
は700 (rwx------
) になっているべきである。
これは、大事な電子メールが他の人に読まれないようにするためです。モード
がそうなっていない時には、サーバ上でchmod
コマンドで変更
する。
~/.forward
(z:\.forward)
というファイルに、転送先のアドレスを書く。
たとえば、
shiro@himalaya.is.tsukuba.ac.jp
に届いたメールを全て
shiro@alps.is.tsukuba.ac.jp
に転送したいとする。この時、
himalaya
の方のホーム・ディレクトリの下の
~/.forward
に次のように書く。
shiro@alps.is.tsukuba.ac.jp
単純に転送先のアドレスを書く方法では、~/.forward
が
あるホストには、何も残らないが、コピーを残しながら、転送する方法もある。
それには、次のように自分のログイン名に\
を付けたア
ドレスを含める。
\shiro, shiro@alps.is.tsukuba.ac.jpこの例では、himalaya に届いた電子メールは、
himalaya
と
いうホストの
\shiro
というユーザの
配送プログラム用メール・ボックスに入り、
さらに、shiro@alps.is.tsukuba.ac.jp
にも送られる。
複数のメール・アドレスがある人は、どのホストにログインした時にも、全部
のホストに届いた電子メールが読める状態にしたいと思うかもしれない。
上の例では、
alps
にログインした時にも、
alps
と himalaya
の両方のメールが読め、
また、himalaya
にログインしてもやはり
alps
と himalaya
の両方のメールが読める
と便利に思えるかもしれない。しかし、こうすることは技術的に難しいので、
しばらくはあきらめて欲しい。
\loginname
の機能をつかっても、なかなかうまくいかない。
たとえば、次のよう
な ~/.forward
を作成したと考える。(実際に実行すると危険なので、
考えるだけする。)
(alps:~/.forward) \shiro, shiro@himalaya.is.tsukuba.ac.jp
(himalaya:~/.forward) \shiro, shiro@alps.is.tsukuba.ac.jpこの状態で、
shiro@alps.is.tsukuba.ac.jp
にメールが届いた
場合、次のようなことが起る。
alps
にコピーが残され、かつ、
shiro@himalaya.is.tsukuba.ac.jp
に送らる。
himalaya
では、やはり、コピーが残され(ここまでは順調)、
さらに、shiro@alps.is.tsukuba.ac.jp
に送られる(!)。
alps
では、コピーが残され(2回目)、himalaya
に送られる。
himalaya
では、コピーが残され(2回目)、
さらに、shiro@alps.is.tsukuba.ac.jp
に送られる。
alps
では、コピーが残され(3回目)、himalaya
に送られる。
himalaya
では、コピーが残され(3回目)、
さらに、shiro@alps.is.tsukuba.ac.jp
に送られる。
alps
では、コピーが残され(4回目)、himalaya
に送られる。
himalaya
では、コピーが残され(4回目)、
さらに、shiro@alps.is.tsukuba.ac.jp
に送られる。
3ヵ所以上でこの設定をしたとすると、中継される度にメールが増殖する。
\loginname
の機能を使っていなかったとすると、コピーは
残らないが、メールが行き来するだけで、どこにも届けられずにエラーになる。
~/.forward
の設定をしたら、必ず自分で自分あてに電子メールを出
して届くかテストすること。~/.forward
の設定を間違えると、エラー
のメールも届かなくなるので、エラーが起こっていることさえわからなくなる。
~/.forward
の機能は、もともとは、sendmail という種類のMTA の機
能である。他の MTA (qmail, postfix)でも使えるように設定していることが多い。
~/.forward
の応用として、他のアドレスに電子メールを転送するの
ではなく、(サーバ上で実行される)プログラムに転送する機能がある。すな
わち、(サーバ上で)プログラムを実行して標準入力に電子メールの内容を与
えるという機能がある。これには、次のように~/.forward
に書く。
"| /program/path/name arg1 arg2 arg3 ... argn"このように、
|
に続いて、プログラムのパス名と引数を書き、
全体を ""
で括る。
この機能を使って、受け取った電子メールを自動的に分類したり、
spamメール
を排除したりすることができる。たとえば、MH の
slocalやprocmail
と呼ば
れているプログラムがこの機能を使っている。
このような状況で、電子メールで、テキスト以外のデータ、たとえば画像デー タや音声データ、ワードプロセッサの文書を送る時には、 任意のバイト列をよく使われる文字だけで表現することが必要になる。
文字だけで表現方法
uuencode 形式 は、Unix でかなり古くから使われてきた、任意のバイト列を電子メールで送 るための形式。
特徴:
begin 644 name M1G)O;2!S:&ER;R!3870@1F5B(#$T)#AU.C4S.C0Q(#$Y.3@*4F5C96EV960Z M)"AF<F]M(A-H:7)O0&QO8V%L:&]S="D*"6(Y)&AJ:V=W-"YI<RYT<W5K=6;A ` end
MIME (Multipurpose Internet Mail Extensions) では、次のようなことを表わすことができる。
MIME に対応したメール・リーダなら、メールを読む時には、MIME 形式のデー タを自動的に元の形にもどしたり、メールを送出す時には、自動的にMIME形式 を使ったりするので、日常的にMIMEと向き合う必要はない。
MIME に対応したメール・リーダでは、電子メールを送る時に、よく次のよう なヘッダを付る。
Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bitこれは、使っている MIME のバージョン、内容の型、ビット数を宣言している 。この例では、内容の型は普通のテ キスト、符号化方式は iso-2022-jp (JIS)、内容のビット数は 7 ビットであ ることを示している。
テキスト以外の型としては、
表?
のようなものがよく使われる。 表? MIMEでよく使われる型
text/plain
の場合、
charset=
で、文字の
符号化の方法の指定が続く。
----------------------------------------------------------------------
型 説明
----------------------------------------------------------------------
text/plain 普通のテキスト。ASCIIまたはISO-8859。
text/html HTMLのテキスト
image/gif GIF形式の画像
image/jpeg JPEG形式の画像
image/tiff TIFF形式の画像
video/mpeg MPEG形式の動画像
video/quicktime QuickTime形式の動画像
audio/basic 音声データ(8ビット、8000Hz、μ)
application/octet-stream バイナリ(8ビットのデータの並び)
application/postscript PostScript のデータ
message/rfc822 RFC822形式(電子メールの形式)
multipart/mixed 複数のMIME形式のデータのならび
(マルチパート形式)
----------------------------------------------------------------------
また、1通のメールで複数のデータを混在させる時には、次のような行が現わ れる。
Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Mar_14_23:05:09_2004_86)--" Content-Transfer-Encoding: 7bit
このように、Content-Type:
が
Multipart
になっているものを、
マルチパート形式
という。この場合、boundary=
で指定された
文字列で、データが区切られる。
各々の中味は、
RFC822形式(電子メールの形式)
に似ていて、ヘッダと本文がある。ヘッダには、
同じように
Content-Type:
などが現われる。
また、To:
, Cc:
, Subject:
などに漢字を含める時にも、
MIME 形式の1つ、
MIMEヘッダ形式
が使われる。これは、たとえば、Subject:
なら、次のような形式になっ
ている。
Subject: =?charset?encoding?string?=ここで、
charset
は、
Content-Type:
と同じ
文字の符号化の方法、
encoding
は、
バイナリのテキストによる符号化方式(
B(base64)か、Q(quoted printable)、普通は、B)
、string
には、符号化された文字が来ます。
たとえば、
Subject: 漢字の題名は、次のようになります。
Subject: =?iso-2022-jp?B?GyRCNEE7eiROQmpMPhsoQg==?=
MIME でよく使われている、バイナリのテキストによる符号化方式には、次の ようなものがある。
=XX
(XX
は16進数)で表わす。
MTA の種類
ユーザが書いた電子メールは、次のようにして送り届けられる。
sendmail.cf
など)を参
照し、受信側の MTA を探して TCP/IP で接続する。この時、
TCP/IP 上で使われる通信プロトコルが SMTP である。
TCP/IP で接続する時には、DNS も参照され、A レコードと MX
レコードが使われる。
sendmail.cf
, aliases
など),
~/.forward
を参照する。もし、
自分あてのものでなければ、再び他の MTA を探して転送する。自分自身
で受け取る場合には、
配送プログラム用メール・ボックスに保存する。
この時、/bin/mail
(
/bin/mail
)
というプログラムが使われることが多い。
図? 電子メールの転送の仕組み
SMTP で電子メールが出される様子。
% mail -v yas@is.tsukuba.ac.jpこの例では、MUA である mail コマンドが、MTA であ るSubject: hello
body
.
EOT yas@is.tsukuba.ac.jp... Connecting to host1.is.tsukuba.ac.jp. via smtp... 220 host1.is.tsukuba.ac.jp ESMTP Sendmail 8.8.8/3.7W; Wed, 26 Aug 2004 23:23:24 +0900 (JST) >>> EHLO host2.cc.tsukuba.ac.jp 250-host1.is.tsukuba.ac.jp Hello host2.cc.tsukuba.ac.jp [XXX.XXX.XXX.XXX], pleased to meet you 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP >>> MAIL From:<user2@host2.cc.tsukuba.ac.jp> SIZE=46 250
... Sender ok >>> RCPT To:<yas@is.tsukuba.ac.jp> 250 <yas@is.tsukuba.ac.jp>... Recipient ok >>> DATA 354 Enter mail, end with "." on a line by itself >>> . 250 XAA16824 Message accepted for delivery yas@is.tsukuba.ac.jp... Sent (XAA16824 Message accepted for delivery) Closing connection to host1.is.tsukuba.ac.jp. >>> QUIT 221 host1.is.tsukuba.ac.jp closing connection %
/usr/lib/sendmail
を呼び出している。画面には、ロー
カルの /usr/lib/sendmail
と、別のホストの
sendmail
デーモンの間の、SMTP によるやり取りが表示されてい
いる。(mail コマンドに与えた -v
(verbose)
オプションの効果。)
>>>
の次に現われているものが、SMTP
の要求で、送信側のホスト host2
の MTA の出力である。
数字で始まっている所が、受信側の host1
の
MTA の応答である。このように、SMTP では、2つのプログラム
が対話をして、電子メールを転送する。
上の対話には、現われていないが、DATA
の後に
電子メールの本文が送られている。ここで本文には、
From:
, To:
, Subject:
など
のヘッダも含まれている。
本文の From:
や
To:
は、電子メールの転送には使われない。
転送には、
表?に出てくる
MAIL FROM:
や RCPT TO:
に続くアドレスが
使われる。この、SMTP
のレベルの、配送に使われるデータ
を、本文と区別して
封筒
(envelope)
と呼ぶ。
SMTP で DATA
の中に出てくるTo:
と、
RCPT TO:
は、多くの場合一致している。しかし、メーリン
グ・リストのメールや、~/.forward
で転送されたメールでは、一致して
いない。すなわち、メーリング・リストや~/.forward
がうまく働くのは、
封筒に書かれた宛先が使われていることによる。
表? よく使われるSMTPの応答コード
-------------------------------------------------------------------- コード 説明 -------------------------------------------------------------------- 220 そのドメインで要求受け付け可能である。 250 そのアドレスへのメールは、受け付け可能である。 251 そのアドレスは、ローカルには受取人がいない。 354 メールの本文を受け付ける。 --------------------------------------------------------------------
1対多の通信という意味では、ネットワーク・ニュースと 似ている。大きな違いは、ネットワーク・ニュースの場合は、自分が気が向 いた時に流れるメッセージを見ることがでるのに対して、メーリング・リスト の場合は、先に参加してからでないと、メッセージを受け取ることができない ことである。
メーリング・リストの場合、運営方針が千差万別である。完全 に閉じたもの(メッセージは参加者内だけで共有される、参加する人が制限さ れている)から、広く開いたもの(メッセージがWWWやネットワーク・ニュー スでも公開される、誰でも参加できる)まで、さまざまな形態がある。参 加者の数も数人のものから、数万人のものまで幅広い。メッセージが発 信できる人が制限されているものや、議長(moderator)の許可がいるも、参 加者が固定しているものから、電子メールを送っただけで自動的に登録されて しまうものまである。
メーリング・リストのサービスを利用するには、まず、参加したい メーリング・リストを探す。それには、 ネットワーク・ニュース、 WWWページの案内、 雑誌や書籍を利用する。
仕事で使う時には、プロジェクトごとにメーリング・リストを作成する ということがよく行なわれる。
参加するメーリング・リストが決まったら、次に、自分の電子メール・アドレ スをリストに登録する。このことを、新聞や雑誌などを予約して購読するこ とにならって、 サブスクライブ(subscribe)する ( 購読する、 入会する 参加する ) という。
登録の方法:
登録されると、多くの場合、メーリング・リストでの約束事や自動登録プログ ラムの使い方の説明が送られてくる。この中に、自分の電子メール・アドレ スを削除する方法(退会する方法)も書かれていることが普通である。削除の方 法は、消さないで大事に保存しておく。 削除することを、 アンサブスクライブ(unsubscribe)する ( 退会する ) という。
最近の自動登録プログラムでは、勝手に他人のアドレスを登録してしまうとい うことを防ぐために、確認が必要な場合がある。確認なしの場合は、次の ような手順で登録が完了する。
参加したい人 登録プログラム ---------------------------------------------------------------------- (1) 参加申込を送る −−→ (2) 登録を行う。 (4) 完了通知を受け取る ←−− (3) 登録完了通知を送る確認付きの自動登録プログラムの場合、次のような手順になる。
参加したい人 登録プログラム ---------------------------------------------------------------------- (1) 参加申込を送る −−→ (2) パスワードを生成する。 (4) パスワードを受け取る ←−− (3) パスワードを送る。 (5) パスワードを含む 登録確認を送る −−→ (6) パスワードがあっていれば 登録を行う。 (8) 完了通知を受け取る ←−− (7) 登録完了通知を送るこのように、確認付きの場合は、1度自動登録プログラムにメールを送っただ けでは、メンバとして登録されないようになっている。つまり、(1) の部分 が偽造されてしまったとしても、(5) をしなければ自分が意図していないメー リング・リストに知らないうちに登録されていたということはない。 逆に、確認付きの場合には、単に参加申込を送っただけでは登録されないの で、自動登録プログラムからのメールに返事をする形で、もう一度メールを出 す必要がある。
メーリング・リストのメールを読んだり、メーリング・リスト当てにメールを 書いたりする方法は、普通の個人のあてメールとまったく変らない。 ただし、 電子メールを有効に利用するための形式と内容に関するヒント で説明したことに加えて、次のような点に注意する必要がある。
Reply-To:,replyto
に注意
する。メーリング・リストでは、Reply-To:
にメーリング・リストの
アドレスが埋め込まれていて、そのメールに返事を出そうとすると自動的にメー
リング・リストにメールが送られるようになっていることがよくある。こ
の時、特定の人にだけ返事をしたつもりが、メーリング・リスト全体に流れる
事故が時々起きる。
http://domain/mailman/listinfo/mlname/
Mailman では、普通、次のようなアドレスが使われる。
mlname@domainname
mlname-request@domainname
表? Mailman の電子メールでよく使われるコマンド
subscribe パスワード [digest|nodigest]
unsubscribe パスワード
who パスワード
passwd 旧パスワード 新パスワード
set ...
set help
set show
info mlname
lists
Mailman
プログラムが管理しているメーリング・リス
トの一覧を調べる。
help
Majordomo
の使い方の説明を送ってもらう。
end
mlname@domainname
majordomo@domainname
mlname-request@domainname
majordomo@domainname
で
は必要なメーリング・リストの名前を省略できる。
majordomo@domainname
に送ると、そのコマンドが
実行され、結果が電子メールで返される。
表? majordomo でよく使われるコマンド
subscribe mlname [email-address]
mlname-request
という形式にメールを送る時には、
省略可能。email-addressは、登録する電子メールのアドレスだが、
普通省略する。省略すると、自動的に From:
のものが使われ
る。
unsubscribe mlname [email-address]
get mlname filename
mlname
」というメーリングリスト に関連した、
「filename
」という名前のファイルを送ってもら
う。関連したファイルとは、主に過去に流れたメールをため込んだもの
(archive)である。
index mlname
get
で使うファイルの一覧を調べる。
which [email-address]
who mlname
mlname
」という名前のメーリング・リストに登録さ
れている電子メールのアドレスの一覧を調べる。
info mlname
mlname
」という名前のメーリング・リストの説明を
送ってもらう。
lists
Majordomo
プログラムが管理しているメーリング・リス
トの一覧を調べる。
help
Majordomo
の使い方の説明を送ってもらう。
end
mlname@domainname
mlname-ctl@domainname
表? fml でよく使われるコマンド
# help
# guide
subscribe mlname
# unsubscribe
# bye
# unsubscribe
と同じ。
# off
# on
# index
# get 数字/# get 数字-数字
# index
get
で使うファイルの一覧を調べる。
# summary
# objective
# end
メーリング・リストの管理には、一般には管理者の権限が必要である。qmail では、(機能をオフにしていなけば)、dot-qmail の機能を使って管理者の権限 がなくてもメーリング・リストを開設することができる。
個人のアドレスが who@domain
の時、メーリング・リストのアドレス
は、次のようになる。
who-mlname@domain
このように、dot-qmail を使う方法では、必ず個人の名前 who- から始まる名 前になってしまう。
メーリング・リストのメンバは、次のファイルに記述する。
~/.qmail-mlname
(サーバ上)
z:\.qmail-mlname
(Windows 2000)
このファイルに、&
で始まる行にメーリング・リストの
参加者を並べる。
&who1@dom1 &who2@dom2 &who3@dom3この機能を使う前に、必ず dot-qmailの使い方 (dot-qmail manual page in English) を読むこと。
~/Mailbox
にある。次のようにして観察する。
% exit![]()
% cat ~/Mailboxあるいは、nkf コマンドを実行する。![]()
% nkf -e ~/Mailbox![]()
~/Mailbox
を調べる。
% exit![]()
% /usr/lib/sendmail yshinjo@ipe.tsukuba.ac.jpTo: shinjo@ipe.tsukuba.ac.jp
Subject: hello
![]()
body
%
![]()
~/Mailbox
を調べる。
% cat ~/Mailbox![]()
% telnet icho.ipe.tsukuba.ac.jp 25Trying 130.158.65.1... Connected to icho.ipe.tsukuba.ac.jp. Escape character is '^]'. EHLO icho.ipe.tsukuba.ac.jp
250-icho.ipe.tsukuba.ac.jp)
250-PIPELINING 250 8BITMIME MAIL From:<yshinjo@icho.ipe.tsukuba.ac.jp>
250 ok RCPT To:<yshinjo@icho.ipe.tsukuba.ac.jp>
250 ok DATA
354 go ahead To: yshinjo@icho.ipe.tsukuba.ac.jp
From: yshinjo@icho.ipe.tsukuba.ac.jp
Subject: hello
![]()
body
.
250 ok 1013108595 qp 7988 quit
221 icho.ipe.tsukuba.ac.jp Connection closed by foreign host. %
![]()
~/Mailbox
自分のメールボックス
~yshinjo/Mailbox
新城のメールボックス
ls -l ~/Mailbox
ls -l ~yshinjo/Mailbox
z:\Mailbox
の状態も調べなさい。最終的に有効なものは、サー
バでの状態である。
% telnet 192.168.153.10 110 (VMwareの場合)![]()
% telnet icho.ipe.tsukuba.ac.jp 110 (ichoの場合。パスワードが他人に見られない環境で試すこと)![]()
---------------------------------------------------------------------- POP のコマンド 説明 ---------------------------------------------------------------------- USER username ユーザ名 username を送る PASS password パスワード password を送る STAT メッセージ数、バイト数の表示 LIST メッセージの一覧 LIST 番号 メッセージの一覧 RETR 番号 メッセージの表示(retrieve) TOP 番号 行数 指定された先頭の表示 DELE 番号 メッセージの削除(削除マークを付けるだけ) RSET 削除マークのが付けられたメッセージのマークを解除 QUIT セッションを付ける。削除マークがついたメッセージを削除する。 NOOP なにもしない(時間切れで切られないようにする) UIDL 番号 Unique Identification Listing を表示 ----------------------------------------------------------------------
---------------------------------------------------------------------- POPの応答 説明 ---------------------------------------------------------------------- +OK 成功 +ERR エラー ----------------------------------------------------------------------USER, PASS の代りに、APOP (MD5)や AUTH で認証することもある。
% telnet 192.168.153.10 143 (VMwareの場合)![]()
% telnet icho.ipe.tsukuba.ac.jp 143 (ichoの場合。パスワードが他人に見られない環境で試すこと)![]()
IMAP では、サーバからの応答が完了する前に複数のコマンドを同時に発行で きる。同時に実行しているコマンドの応答を区別するために、コマンドの 識別子を与える。telnet 等で手で打つ場合には、「*」を使うことが多い。
* LOGIN user1 pass1![]()
---------------------------------------------------------------------- IMAP のコマンド 説明 ---------------------------------------------------------------------- 全状態で有効 LOGOUT ログアウトする。 CAPABILITY 機能一覧。 NOOP なにもしない。タイムアウトのリセット。 未認証状態 LOGIN USER username passwd ログインする。 AUTHENTICATE mechanism ログインする(継続データ必要)。 認証済状態 SELECT mbox メールボックスを選択する EXAMINE mbox メールボックスを選択する(読み込み専用) LIST name mbox(*) 全てのメールボックスの一覧 LSUB name mbox(*) 講読しているメールボックスの一覧 CREATE mbox メールボックスの作成 DELETE mbox メールボックスの削除 RENAME mbox メールボックスの改名 SUBSCRIBE mbox メールボックスを講読対象にする UNSUBSCRIBE mbox メールボックスを講読対象からはずす STATUS mbox (items) メールボックスの状態 APPEND mbox (flags) date msg メッセージの追加 選択済み状態(SELECT後) STORE mlist op val フラグの値の設定 EXPUNGE 削除マークがついているメッセージの削除の実行 SEARCH exp 検索 FETCH msg (item) メッセージの取得 COPY msg folder メッセージのコピー CLOSE 認証済み状態(SELECT以前)にもどる ----------------------------------------------------------------------
---------------------------------------------------------------------- IMAPの応答 説明 ---------------------------------------------------------------------- OK コマンドが成功 NO コマンドが失敗 BAD プロトコルエラーが発生 PREAUTH 承認済み状態である BYE サーバにより切断しようとしている ----------------------------------------------------------------------
---------------------------------------------------------------------- IMAPのフラグ 説明 ---------------------------------------------------------------------- \Seen 既読 \Answered 返信済み \Flagged 「至急」、「重要」などフラグがある。 \Deleted 削除マークがついている。実際の削除は、EXPUNGE で。 \Draft 下書き段階 \Recent 新着 ----------------------------------------------------------------------
---------------------------------------------------------------------- IMAPのSEARCHの形式 説明 ---------------------------------------------------------------------- msglist メッセージの番号 ALL 全メッセージ FROM 文字列 From: に文字列が含まれる TO 文字列 To: に文字列が含まれる CC 文字列 Cc: に文字列が含まれる BCC 文字列 Bcc: に文字列が含まれる SUBJECT 文字列 Subject: に文字列が含まれる HEADER 文字列 ヘッダに文字列が含まれる BODY 文字列 本文に文字列が含まれる TEXT 文字列 ヘッダまたは本文に文字列が含まれる SENTBEFORE 日付 Date: が指定された日付より以前 SENTON 日付 Date: が指定された日付 SENTSINSE 日付 Date: が指定された日付より以降 BEFORE 日付 日付より以前 ON 日付 日付のもの SINCE 日付 日付より以降 LARGER n nバイトより大きい SMALLER n nバイトより小さい UID id 指定された UID を持つ KEYWORD flag 指定されたフラグがセットされている UNKEYWORD flag 指定されたフラグがセットされていない ANSWERED 返信済み(\Answeredフラグがついたもの) UNANSWERED 返信済みでない(\Answeredフラグがついてない) DELETED 削除済み(\Deletedフラグがついたもの) UNDELETED 削除済みでない(\Deletedフラグがついてない) DRAFT 下書き(\Draftフラグがついたもの) UNDRAFT 下書きでない(\Draftフラグがついてない) FLAGGED フラグつき(\Flaggedフラグがついたもの) UNFLAGGED フラグつきでない(\Flaggedフラグがついてない) NEW 新規メッセージ(\Recentフラグがついたもの) OLD 古いメッセージ(\Recentフラグがついてない) SEEN 既読メッセージ(\Seenフラグががついたもの) UNSEEN 味読メッセージ(\Seenフラグがついたもの) OR cond cond どちらかの検索形式にマッチする ----------------------------------------------------------------------
---------------------------------------------------------------------- FETCHので指定できる項目 説明 ---------------------------------------------------------------------- ALL FLAGS, INTERNALDATE, RFC822.SIZE BODY BODY 本文 BODY[セクション] 本文 BODY.PEEK[セクション] 本文(\Seenがセットされない) BODYSTRUCTURE 本文の構造 ENVELOPE エンベロープ FAST FLAGS, INTERNALDATE, RFC822.SIZE FLAGS フラグ FULL FLAGS, INTERNALDATE, RFC822.SIZE ENVELOPE BODY INTERNALDATE 内部で管理している時刻(Date:ではない) RFC822 メッセージ全体(ヘッダと本文) RFC822.HEADER ヘッダ RFC822.SIZE サイズ RFC822.TEXT テキスト本文 UID UID ----------------------------------------------------------------------
締め切りは、2004年2月7日月曜日とする。
入会できた人は、次のような操作をしてみなさい。
To: inet-2004-request@top.is.tsukuba.ac.jp Subject: help help end
Date: