電子メール(email)の誕生は1960年代の初期でした。メールボックスはユーザーにのみ読み込み可能なユーザーのホームディレクトリにあるファイルでした。原始的なメールアプリケーションでは、そのファイルの下にテキストメッセージを付けるため、ユーザーは常時増加するファイルを押し退けて目的のメッセージを探す必要がありました。このようなシステムでは、同じシステム上のユーザーにだけメッセージを送信できる状態でした。
電子メールメッセージファイルの最初のネットワーク送信は、コンピュータ エンジニアである Ray Tomlinsonがテストメッセージを ARPANETを経由した2つの マシン間で送信した1971年に始まりました。(インターネットの前身です)。電子メールでの通信はすぐに有名になり、2年以内に ARPANETのトラフィックの 75%を占めていました。
今日、標準化したネットワークプロトコル上の電子メールシステムは、インターネット上で最も使用されるサービスになるまで発展しています。Red Hat Enterprise Linuxでは、電子メールのサービスとアクセスの為の高度なアプリケーションを多く提供しています。
この章では、今日使用されている最近の電子メールプロトコルと電子メールで送受信ができる ように設計されているプログラムを説明します。
現在の電子メールはクライアント/サーバーアーキテクチャーを使用して配送されます。電子メールのメッセージはメールクライアントプログラムを使用して作成します。このプログラムがメッセージをサーバーに送り、そのサーバーは受信者側の電子メールサーバーにメッセージを転送します。そこからメッセージが受信者の電子メール クライアントに供給されます。
このプロセスを有効にするために、多種多様の標準ネットワークプロトコルが 異なるマシンを、殆どの場合、異なるオペレーティングシステムと異なる電子メール プログラムで電子メールの送受信を可能にします。
以下で説明してあるプロトコルは、電子メール転送で最も一般に使用されているプロトコルです
クライアントアプリケーションからサーバーまで、及び送信側のサーバーから 受信側のサーバーまでのメールの配送は SMTP (Simple Mail Transfer Protocol)により処理されます。
SMTPの主要目的は、メールサーバー間でメールを転送することです。しかし、それが 電子メールクライアントにとっても重要になります。メールを送るためには、クライアントはメッセージを配送元のサーバーに送り、そのサーバーが配送先のメールサーバーに配達の連絡をします。この理由で、電子メールクライアントを設定する時に、SMTP サーバーを指定する必要がある訳です。
Red Hat Enterprise Linuxでは、ユーザーは SMTPサーバーをローカルマシン上で設定してメール配送を処理できます。そして、さらに発信メール用のリモート SMTP サーバーの設定もすることができます。
SMTPプロトコルで重要なポイントの1つは、これが認証を必要としないことです。 この為、インターネット上の誰でも他の誰かに、あるいは大規模な団体にさえも 電子メールを送信することが出来ます。実はこれがゴミメール、すなわち spamを可能にする SMTPの性格なのです。最新の SMTP サーバーは、そのサーバーにアクセスできる既知のホストのみに許可をすることでこの様な行為を最小限に抑えています。このような規制をしていないサーバーはオープンリレーサーバーと呼ばれます。
Red Hat Enterprise Linuxでは、Sendmail (/usr/sbin/sendmail)をそのデフォルトの SMTPプログラムとして使用します。しかし、より簡単なメールサーバーアプリケーション、 Postfix (/usr/sbin/postfix)も利用できます。
電子メールをメールサーバーから取り出すために、電子メールアプリケーションで 使用される2つの主要プロトコルがあります。POP (Post Office Protocol)とIMAP (Internet Message Access Protocol)です。
SMTPとは異なり、これらのプロトコルは両方とも、ユーザー名とそのパスワードを使用して認証する接続を要求します。デフォルトでは、この両方のプロトコルはネットワーク上で暗号化なしで渡されます。
Red Hat Enterprise Linuxのデフォルト用の POPサーバーは/usr/sbin/ipop3dであり、 imapパッケージによって用意されています。POPサーバーを使用する時、電子メールメッセージはメールクライアントアプリケーションによりダウンロードされます。デフォルトで、メールサーバーからメッセージが正常に転送された後には、殆どの電子メールクライアントは自動的にメッセージを削除するように設定されています。しかし、通常この設定は変更できます。
POPは、MIME(Multipurpose Internet Mail Extensions) などの重要なインターネットメッセージング標準にも互換性があり、これでメールの添付が可能になります。
POPは、電子メールの読み取りに使用するシステムが1台しかないユーザーに最適です。また、インターネットへの固定接続がない場合やメールサーバーを含むネットワークがない場合にも機能します。POPは認証した時点でクライアントプログラムに各メッセージの内容すべてをダウンロードするように要求しますので、遅いネットワークに接続しているユーザーにとっては大変です。これは、特にメッセージが大きいサイズの添付ファイルを持っている時には長い時間がかかります。
最新の標準バージョンの POPプロトコルは POP3です。
但し、使用頻度の低い他のPOPプロトコルの変種は多種存在します:
APOP — MDS 認証付きのPOP3です。 暗号化なしでパスワードを送るのではなくユーザーパスワードの 暗号化されたハッシュ(語群)が電子メールクライアントからサーバーに 送ります。
KPOP — Kerberos 認証付きのPOP3です。詳細については 章19章 を御覧下さい。
RPOP — RPOP認証付きのPOP3です。 これは、パスワードに似た、ユーザー毎のIDを使用してPOP要求を 認証します。しかし、IDは暗号化されていないので、RPOPが通常の POPより安全であることはありません。
追加のセキュリティとして、クライアント認証とデータ転送のセッション用に SSL(Secure Socket Layer) 暗号化を使用することも出来ます。これは、 ipop3sサービス、 又は、/usr/sbin/stunnelプログラムを使用して有効にすることができます。その詳細は項11.5.1で御覧下さい。
Red Hat Enterprise 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.