電子メールとは

 電子メール(Electronic mail)は、e-mail、Eメールとも呼ばれ、電子工学を用いてメッセージを交換するシステムのことです。

 電子メールは、ブロードバンドの普及や携帯電話のメール機能のおかげで身近なものになりましたが、電子メール自体、目新しいものではありません。インターネットの初期からあります。

 当時のメールサーバはUNIXで運用されていたので、メールサーバにTelnetでログインしてコマンドラインからメールを読むようになっており、1つのパソコン通信システム内にとどまっていました。MIMEなどもなく、添付ファイルや今のような複雑なメールは、当時できませんでした。

 さて、今や電子メールは、インターネットを代表するシステムです。我々の通信手段に欠かせないものとなっています。文章(テキスト)だけでなく、画像、音声、動画、表計算のデータなど添付して送信することもできることからデータ交換の手段にも利用できます。

また、HTML形式のメールを送信すれば、ホームページのような凝ったメールも送ることができます。

メールのやり取りには、下図のように行われます。

 電子メールのシステムには、メールサーバが必要で、メール転送プロトコルにSMTP(Simple Mail Transfer Protocol Version 3)、メールサーバのメールボックスに自分に届いたメールを取りにいくPOP3(Post Office Protocol)やIMAP4(Internet Message Access Protocol Version 4)などのプロトコルが用いられます。

各プロトコルが利用するポート番号は下表のようになっています。

プロトコルポート番号
SMTP25
POP3110
IMAP4143

 POP3、IMAP4共にメールサーバのメールボックスに蓄積された電子メールを取り出すプロトコルであることから、「ラスト・ワン・ホップ プロトコル」とも呼ばれています。

 電子メールは、上図のように送信側から宛先のメールサーバのメールボックスまでに、いくつかのメールサーバを経由して到達するようになっています。

電子メール(MTAとMUA)

 電子メールの仕組みは、大きく分けるとメールの送信機能と受信機能に分けることができます。他にも送受信メールを一時的に保管して転送に備え、キューイング機能などもあります。

 こうしたメールを配信したり転送を行うプログラムのことをMTA(Mail Tranfer Agent)と呼びます。メールサーバは、この機能を実装しています。

 MTAとして人気の高いの複合プログラムは、sendmail、qmail、Postfixなどがあります。その内、新世代MTAとしてqmail、Postfixが注目されています。

 逆にこうした機能を持たず、ユーザのフロントエンドとして、電子メールの表示や読み書き、そしてメールサーバへの送信やサーバの自分のメールボックスからのメールの受信に専念するプログラムをMUA(Mail User Agent)と呼びます。

このMUAのことを「電子メールソフト」「メールクライアント」「メーラー」などと呼んでいます。

 もともと、MTAとMUAは1つのプログラムでした。初期のメールでは、同じマシン内のユーザのメールを送受信するだけで、プログラムは大した規模ではありませんでしたが、SMTPが登場すると、遠く離れたユーザ同士でもメールを送受信できるようになり、プログラムの規模は膨大になってきました。

 その頃になると、クライアントパソコンの価格も下がり、性能も飛躍的に向上していたので、MUAの機能はクライアント側で行うようになりました。

 今では、MTAとMUAという2階層に分けて運用する方が効率的なので、分離して運用するのが一般的になっています。

メールサーバの仕事

メールサーバの主な仕事は、メール配信(Delivery)とメール転送(Transfer)です。

メール配信とは、メールサーバのローカルでユーザのメールボックスへ間違いなくメールを届ける機能のことです。

 メールサーバには、ユーザごとのメールボックスがあり、自分には、どの名前のユーザが登録されているか、そして、そのユーザがどのメールボックスを使用しているかを管理しています。自分の管理するユーザ宛てのメールを受け取った時は、そのユーザのメールボックスに保管しておきます。

 メールの転送とは、宛先メールアドレスの@の右側のドメイン名から判断して、次のメールサーバに転送する機能のことです。メールアドレスは、下の形式で記述することが決められています。

[ユーザー名]@[ドメイン名]

 メールユーザの管理は、OSやsendmailなどのアプリケーションによって動作が異なります。UNIXのユーザ登録の仕組みを利用するもの、WindowsサーバではActive Directoryの仕組みを利用しています。