第 11章電子メール

電子メール(email)の誕生は1960年代の初期でした。 メールボックスはユーザーにのみ読み込み可能なユーザーのホームディレクトリに あるファイルでした。原始的なメールアプリケーションは、そのファイルの下に テキストメッセージを付けるため、ユーザーは常時増加するファイルを押し退けて 目的のメッセージを探す必要がありました。このようなシステムでは、同じシステム上の ユーザーにだけメッセージを送信できた状態でした。

実際の電子メールメッセージファイルの最初のネットワーク送信は、コンピュータ エンジニアであるRay TomlinsonがテストメッセージをARPANETを経由した2つの マシン間で送信した1971年に始まりました。(インターネットの前身です)。 電子メールでの通信はすぐに有名になり、2年以内にARPANETのトラフィックの 75%を占めていました。

今日、標準化したネットワークプロトコル上の電子メールシステムは、インターネット上で 最も使用されるサービスの1部になるまで発展しています。Red Hat Linuxでは、電子メールのサービスと アクセスをする為の多くの高度なアプリケーションを提供しています。

この章では、今日使用されている最近の電子メールプロトコルと電子メールで送受信ができる ように設計されているプログラムを説明します。

11.1. 電子メールプロトコル

現在の電子メールはクライアント/サーバーアーキテクチャーを使用して配送されます。 電子メールのメッセージはメールクライアントプログラムを使用して作成します。 このプログラムがメッセージをサーバーに送り、そのサーバーは受信者側の電子メール サーバーにメッセージを転送します。そこから最終的にメッセージが受信者の電子メール クライアントに供給されます。

このプロセスを有効にするために、多種多様の標準ネットワークプロトコルが 異なるマシンを、殆どの場合、異なるオペレーティングシステムと異なる電子メール プログラムで電子メールの送受信を可能にします。

以下で説明してあるプロトコルは、電子メール転送で最も一般に使用されているプロトコルです

11.1.1. Mail Transport Protocols

クライアントアプリケーションからサーバーへと、その送信側のサーバーから 受信側のサーバーまでのメールの配送はSMTP (Simple Mail Transfer Protocol)により処理 されます。

11.1.1.1. SMTP

SMTPの主要目的は、メールサーバー間でメールを転送することです。しかし、それが 電子メールクライアントにとっても重要になります。メールを送るためには、クライアントは メッセージを配送元のサーバーに送り、そのサーバーが配送先のメールサーバーに配達の 連絡をします。この理由で、電子メールクライアントを設定する時に、SMTPサーバーを 指定する必要がある訳です。

Red Hat Linuxでは、ユーザーは SMTPサーバーをローカルマシン上で設定して メール配送を処理できます。そして、さらに発信メール用のリモート サーバーの設定もすることができます。

SMTPプロトコルで重要なポイントの1つは、これが認証を必要としないことです。 この為、インターネット上の誰でも他の誰かに、あるいは大規模な団体にさえも 電子メールを送信することが出来ます。実はこれがゴミメール、すなわち spamを可能にするSMTPの性格なのです。最新のSMTP サーバーは、そのサーバーにアクセスできる既知のホストのみに許可をする ことでこの様な行為を最小限に抑えています。このような規制をしていない サーバーはオープンリレーサーバーと呼ばれます。

Red Hat Linuxは、Sendmail (/usr/sbin/sendmail)をそのデフォルトの SMTPプログラムとして使用します。しかし、より簡単なメールサーバーアプリケーション、 Postfix (/usr/sbin/postfix)も利用できます。

11.1.2. Mail Access Protocols

電子メールをメールサーバーから取り出すために、電子メールアプリケーションで 使用される2つの主要プロトコルがあります。POP (Post Office Protocol)とIMAP (Internet Message Access Protocol)です。

SMTPとは異なり、これらのプロトコルは両方とも、ユーザー名とそのパスワードを 使用して認証する接続を要求します。デフォルトでは、この両方のプロトコルは ネットワーク上で暗号化なしで渡されます。

11.1.2.1. POP

Red Hat Linuxでは、デフォルトのPOPサーバーは/usr/sbin/ipop3dであり、 imapパッケージによって用意されています。POPサーバーを使用 する時、電子メールメッセージはメールクライアントアプリケーションによりダウンロード されます。デフォルトで、殆どの電子メールクライアントはメールサーバーからメッセージが 正常に転送された後には、自動的にメッセージを削除するように設定されています。しかし、 通常、この設定は変更できます。

POPは、MIME(Multipurpose Internet Mail Extensions) などの重要なインターネットメッセージング標準にも互換性があり、これでメールの添付が 可能になります。

POPは、電子メールの読み取りに使用するシステムが1台しかないユーザーに最適です。 また、インターネットへの固定接続がない場合やメールサーバーを含むネットワークがない場合にも 機能します。POPは認証した時点でクライアントプログラムに各メッセージの内容すべてを ダウンロードするように要求しますので、遅いネットワークに接続しているユーザーにとっては 大変です。これは、特にメッセージが大きいサイズの添付ファイルを持っている時には長い 時間がかかります。

最新の標準バージョンのPOPプロトコルは POP3です。

但し、使用頻度の低い、他のPOPプロトコルの変種は多種存在します:

  • APOP — MDS 認証付きのPOP3です。 暗号化なしでパスワードを送るのではなくユーザーパスワードの 暗号化されたハッシュ(語群)が電子メールクライアントからサーバーに 送ります。

  • KPOP — Kerbero認証付きのPOP3です。 この詳細については 第17章を御覧下さい。

  • RPOP — RPOP認証付きのPOP3です。 これは、パスワードに似た、ユーザー毎のIDを使用してPOP要求を 認証します。しかし、IDは暗号化されていないので、RPOPが通常の POPより安全であることはありません。

追加のセキュリティとして、クライアント認証とデータ転送のセッション用に SSL(Secure Socket Layer) 暗号化を使用することも出来ます。これは、 ipop3sサービス、 又は、/usr/sbin/stunnelプログラムを使用して有効に することができます。その詳細は項11.5.1で 御覧下さい。

11.1.2.2. IMAP

Red Hat LinuxのデフォルトIMAPサーバーは、/usr/sbin/imapdであり、これは imapパッケージで用意されています。IMAPメールパッケージを使用 すると電子メールのメッセージはサーバーに残りますので、ユーザーはそこで読み取ったり 削除したりすることが出来ます。IMAPにより、クライアントアプリケーションはサーバー上の メールディレクトリを作成、名前変更、あるいは削除して電子メールの編成や保存ができます。

IMAPは、複数のマシンを使用して電子メールにアクセスするユーザーに特に 便利です。このプロトコルは、また遅い回線経由でメールサーバーに接続して いるユーザーにも便利です。それは電子メールのヘッダ(頭書き)だけがメッセージ の代理でダウンロードされますので、それを開くまでは回線も節約できるからです。 ユーザーはさらにメッセージを表示あるいはダウンロードせずに削除することも 出来ます。

また、便利なようにIMAPアプリケーションは、メッセージのコピーをローカルに キャッシュすることが可能で、これによりIMAPサーバーに直接接続されていない時も 保存しているメッセージを閲覧することができます。

IMAPは、POPと同様にMIMEなどの重要なインターネットメッセージング基準に 互換性をもつため、電子メールの添付も可能です。

セキュリティの補強の為に、クライアント認証とデータ転送セッションの為の SSL暗号法を使用することができます。これは imapsサービス、又は/usr/sbin/stunnel プログラムの使用をすることで有効にすることが出来ます。詳細については 項11.5.1を参照して下さい。

他にもフリータイプと商用タイプのIMAPクライアントとサーバーが利用できます。その殆どは IMAPプロトコルを拡張して、追加の機能を提供しています。総合的な一覧はオンラインで、 以下のサイトで確認できます。 http://www.imap.org/products/longlist.htm.