利用するアプリケーション

電子メールの送受信に利用するアプリケーションは、メールアプリケーションです。主なメールアプリケーションとして、以下のものが挙げられます。

  • Microsoft Outlook
  • Mozilla Thunderbird

メールアプリケーションには利用するメールアカウントの設定が必要です。主な設定内容は、以下のとおりです。

設定内容意味
アカウント名メールアカウントのユーザ名
パスワードメールアカウントのユーザ名に対するパスワード
メールアドレスメールソフトを利用するユーザのメールアドレス
送信者名メールを送信するユーザの名前
メールサーバメールサーバのホスト名またはIPアドレス。送信用のSMTPサーバと受信用のPOP3またはIMAP4サーバの設定を行う
表 メールアカウントの主な設定内容

また、メールアプリケーションを動作させているPCなどには、TCP/IPの設定が正しく行われていることが大前提です。そして、メールサーバでは、メールサーバアプリケーションが必要です。主なメールサーバアプリケーションとして、以下のものが挙げられます。

  • Microsoft ExchangeServer
  • sendmail
  • qmail
  • Postfix

メールサーバアプリケーションには、主に利用するユーザのメールボックスを作成しておかなければいけません。また、当然ながら、メールサーバ自体のTCP/IP設定が正しいことが大前提です。

 図 電子メールで利用するアプリケーション
 図 電子メールで利用するアプリケーション

利用するプロトコル

電子メールの送信にはSMTPを利用します。SMTPはトランスポート層にTCPを利用してウェルノウンポート番号は25です。そして、電子メールの受信には、POP3またはIMAP4を利用します。どちらもトランスポート層にTCPを利用します。POP3のウェルノウンポート番号は110で、IMAP4のウェルノウンポート番号は143です。

メールアプリケーションでは、メールアドレスを指定します。TCP/IPは必ずIPアドレスが必要です。メールサーバのIPアドレスを求めるために、DNSを利用しています。メールアカウントで設定されたメールサーバのホスト名やメールアドレスのドメイン名からDNSによって、メールサーバのIPアドレスを取得します。そして、ネットワークインタフェース層にイーサネットを利用しているときには、IPアドレスからARPによってMACアドレスを求めています。

図 電子メールで利用するプロトコル
図 電子メールで利用するプロトコル

 

メールサーバのSMTPのポート番号として、25ではなくサブミッションポート587を使うことが多くなっています。これは、迷惑メールの不正な送信を防止するためです。

電子メール送受信の動作の流れ

電子メールの送受信には、SMTPやPOP3/IMAP4を利用しますが、Webアクセスと同じようにそれだけではありません。DNSの名前解決、ARPのアドレス解決、TCPコネクションの確立を行います。これらのプロトコルの組み合わせで電子メールを送受信していく流れをまとめましょう。以下のネットワーク構成を例にとります。

図 メール送信 ネットワーク構成
図 メール送信 ネットワーク構成

 

メールの送信

まず、クライアントPCのメールアプリケーションから、メールサーバへのメール送信です。

メール送信時の動作の流れは、次のようになります。

  1. メールアプリケーションでメールを書き送信をクリック
  2. メールサーバのIPアドレスを解決
  3. TCPコネクションの確立
  4. SMTPコマンドと応答コードのやり取り

メールアプリケーションでメールを書き送信をクリック

メールアプリケーションでメールを書いて送信をクリックすることでメールが送信されます。このとき、IPアドレスは意識しません。宛先メールアドレスを指定します。

メールサーバのIPアドレスを解決

メールサーバにメールを送信するためにメールサーバのIPアドレスが必要です。メールアプリケーションでメールアカウントの設定を行っています。メールアカウントの設定で、メールサーバのホスト名を指定しています。メールサーバのホスト名からDNSで名前入解決を行います。また、DNSサーバへ問い合わせするために、イーサネットのMACアドレスも必要です。そこでARPも行われます。

図 メールサーバの名前解決
図 メールサーバの名前解決
メールアカウントの設定でメールサーバのIPアドレスを指定することもできます。その場合は、名前解決は不要です。ただし、メールアカウントの設定でメールサーバのIPアドレスそのものを指定するケースは稀です。

TCPコネクションの確立

メールサーバのIPアドレスを解決したら、メールアプリケーションとメールサーバアプリケーション間でTCPコネクションを確立します。メールサーバアプリケーションのポート番号はウェルノウンポートの25です。

図 TCPコネクションの確立
図 TCPコネクションの確立

 

SMTPコマンドと応答コードのやり取り

TCPコネクションを確立すると、そのコネクションを通じてSMTPコマンドと応答コードをやり取りして、メールのデータを送信します。メールのデータのサイズは大きくなるので、TCPの機能で分割して送信します。

図 SMTPコマンドと応答コードのやり取り
図 SMTPコマンドと応答コードのやり取り

メールは最終的に宛先メールアドレスのドメイン内のメールサーバに転送されていきます。メールサーバ間のメールの送信も、上記の手順とほとんど同じです。転送先のメールサーバのIPアドレスを解決の流れが若干異なります。

転送先のメールサーバのIPアドレスを解決するために、DNSを利用します。このとき、宛先メールアドレスのドメイン名のMXレコードを問い合わせることになります。

メールの受信

メールを受信するときの流れは、以下のようになります。

  1. メールアプリケーションで受信をクリック
  2. メールサーバのIPアドレスを解決
  3. TCPコネクションの確立
  4. POP3コマンドと応答コードのやり取り

基本的な動作の流れは、メール送信時と同じです。メールアカウントの設定で指定しているメールサーバのIPアドレスをDNSで解決したら、TCPコネクションを確立します。このときのポート番号は110です。

TCPコネクションを確立すると、POP3コマンドと応答コードのやり取りでユーザ認証を行い、メールデータを受信します。

図 メールの受信
図 メールの受信

 

TCP/IP