メール送信の仕組み

目次

送信したメールを相手が受け取るまで

  1. メーラー(MUA)を使い、自社のメールサーバーにSMTPで電子メールを送信します。
  2. メールサーバーはDNSサーバーにアクセスして、相手先メールサーバーのIPアドレスを調べます。
  3. 相手先メールサーバーにSMTPで電子メールを送信します。
  4. 相手先メールサーバーは、受け取った電子メールをメールボックスに振り分けます。
  5. 相手がメーラーを使い、POPまたはIMAPで受信した電子メールを確認します。
DNS (でぃーえぬえす)

Domain Name Systemの略です。ホスト名や電子メールのドメイン名と、IPアドレスの関連付けを行うシステムです。インターネットに接続されているコンピューターには、IPアドレスという住所が割り当てられています。しかしIPアドレス(数字の羅列)では人はとても覚えられません。このためIPアドレスに対応するドメインという名前を割り当てて管理するようにしました。メールアドレスの@マークより後ろがドメイン名に該当します。なおDNSサーバーは世界各地にありますが、その中でももっとも権限の高いルートサーバーは世界に13台しかなく、そのうちの1台は日本にあります。

MDA (えむでぃーえー)

Mail Delivery Agentの略です。受信した電子メールの@マークより前を見て、個々のメールボックスに振り分けます。

MRA (えむあーるえー)

Mail Retrieval Agentの略です。POPまたはIMAPにて、メールボックスから電子メールを取り出します。

MSA (えむえすえー)

Message Submission Agentの略です。ユーザー認証とスパムメール対策を行います。いわゆるSMTP-AUTH(えすえむてぃーぴー・おーす)です。昔はMSAがなく、MUAから直接MTAに電子メールが渡っていました。しかしスパムメールが多くばらまかれ始めたことにより、認証をパスしない限り電子メールの送信を許可しないようにしました。

MTA (えむてぃーえー)

Mail Transfer Agentの略です。メーラーから受け取った電子メールを、相手先メールサーバーへ送信します。

MUA (えむゆーえー)

Mail User Agentの略です。メールの送受信を行うソフト、ThunderbirdやOutlookなどいわゆるメーラーです。

POP (ぽっぷ) / IMAP (あいまっぷ)

POP(Post Office Protocol)とIMAP(Internet Message Access Protocol)はともにメールを受信するためのプロトコルです。この違いは下記の点にあります。

POPは電子メールをMUAにダウンロードして確認します。ダウンロードした電子メールはメールボックスから削除します。IMAPは電子メールをダウンロードせず、メールボックスに残したまま確認します。このためオフライン環境では、受信した電子メールをまったく確認できないということになります。しかし通常は一定期間分、または一定容量分をキャッシュで残しているのである程度は確認可能です。パソコンやスマートフォン、タブレットといった複数のデバイスで電子メールを確認するのに向いています。なおPOP3やIMAP4の数字はプロトコルのバージョンを表しています。

SMTP (えすえむてぃーぴー)

Simple Mail Transfer Protocolの略です。電子メールの転送に使用するプロトコルです。 詳細は次項以降の「SMTPの流れ」を参照ください。

SMTPの流れ

EHLOコマンド (Extended HeLlO)

SMTPセッションの開始を表します。このコマンドを受けたメールサーバーは、自身のサーバー名と利用可能な拡張サービス(上図⑤~⑥)を返します。

以前はHELOコマンドを使用していましたが、現在はこのEHLOコマンドを使用すべきです。
なお通常は対応する拡張サービスが複数あり、複数回に分けて出力されてきます。このため最終データであることがわかるようにするため、最終データのみコード(250)とコマンド名の間がハイフンではなく空白(上図⑥)となります。拡張サービスの詳細は、次項以降の「SMTP拡張サービス」を参照ください。

MAIL FROMコマンド

メールの送信元アドレスです。ここで示すメールアドレスはエンベロープ(封筒)上の送り主で、メールヘッダーにFromで記載するアドレスと同値とは限りません。いわゆるメーラー上に表示される送信元メールアドレスは本値ではなく、メールヘッダーにFromで記載したアドレスとなります。

メール送信に失敗した場合、このメールアドレスにエラー応答が返ります。メール送信に成功した後、本アドレスは不要となります。

RCPT TOコマンド (ReCiPienT)

メールの送信先アドレスです。ここで示すメールアドレスはエンベロープ(封筒)上の送り先で、メールヘッダーにToで記載するアドレスと同値とは限りません。いわゆるメーラー上に表示される送信先メールアドレスは本値ではなく、メールヘッダーにToで記載したアドレスとなります。

こうすることの利点としてBCCの実現があります。RCPT TOに送信先アドレスを設定し、メールヘッダーのToからは省くことでBCCを実現できます。複数の送信先に電子メールを送信する場合、本コマンドを複数回送信しても構いません。

DATAコマンド

メールデータ送信します。送信先メールサーバーが354を返してきたのを確認すると、その後メールデータの送信を開始します。
メールデータはまずメールヘッダーから始まります。メールヘッダーの送信が終わると、空行(上図⑮)を送信した後メール本文を送信します。そしてピリオドのみの行(上図⑱)を送信するとメール本文の終了となります。

QUIT

メール送信を終了します。

SMTP拡張サービス

SMTPの拡張サービスについて、いくつか紹介します。

8BITMIME

8ビットデータを取り扱えることを表します。SMTPでは7ビットのASCIIしか使用できません。このため、そのままでは日本語などを送信することができません。この対策として用いられるが、Base64や本拡張サービスです。

AUTH

SMTP-AUTHに対応していることを表します。SMTPには認証機能がなく、誰でも自由にSMTPサーバーを使用できます。これにより発生したのが大量のスパムメール問題です。この対策として組み込まれたのが認証(Authentication)機能です。IDとパスワードを確認し、正しいユーザーから送信された電子メールのみを取り扱います。

HELP

HELPコマンドを使用できることを表します。各コマンドに関する詳細情報などを得られます。

PIPELINING

相手先メールサーバーからの応答を待たずに、一気にコマンドを送信できることを表します。これによりMAIL、RCPT、DATAコマンドを立て続けに送信することができ、時間を節約できます。

SIZE

SMTPサーバーが取り扱うことのできる、最大サイズを表します。各サーバーには取り扱える最大サイズがあり、それを超える電子メールを受け取るとエラーを返します。あらかじめ最大サイズがわかっていれば、ネットワーク帯域幅を不要に消費するのを防ぐことができます。

コメント

コメントする

CAPTCHA


目次