電子メール

中分類10_ネットワーク

テクノロジ系 > 大分類3 技術要素 > 中分類10 ネットワーク > 5.ネットワーク応用 > (1)インターネット > ①電子メール

① 電子メール
電子メールシステムはメールサーバとメールクライアントで構成されており,送信した
メールはメールサーバからメールサーバへリレー方式で配送される仕組みであること,電
子メールシステムの特徴,機能を理解する。
用語例 SMTP,POP3,IMAP4,MIME,base64,HTML メール(MHTML)

電子メールの基本的な仕組み

電子メールはパソコンやスマートフォンを使用して作成したデータをインターネットなどのネットワークで配信する仕組みです。ネットワークの歴史の中では比較的古く、1970年代にアメリカのプログラマであるレイ・トムリンソン(1941~2016)が発明したとされ、ネットワークの発展とともに広く使われてきました。しかし、スパムメールなど多くの脅威が存在し、多くの対策が施されて現在に至っています。まずその仕組みについて理解ができていないとセキュリティ分野でつまずくことが多いので、しっかり学んでおきたいところです。

電子メール配送の仕組み

電子メールは基本的に3つのソフトウェアによって成り立っています。

  • MUAMail User Agent:メールユーザーエージェント
    電子メールを送信するときのユーザインタフェースです。WindowsであればOutlookがこれに当たり、普段私たちが使用するメールソフトのことです。メーラメールクライアントソフトウェアなどとも呼ばれます。宛先や本文などで構成されるメールのメッセージを作成するとともに、メールを受信して読みだすことも行います。読みだす際に使用されるプロトコルがPOPIMAP(後述)です。
  • MTAMail Transfer Agent
    一般的にメールサーバと呼ばれるものです。例えばOutlook(MUA)で「送信」ボタンを押したとき、メールプロトコルの1つであるSMTP(詳しくは後述)によってメールが配送されますが、その際に渡されるソフトウェアのことを指します。MTAはメールの宛先を見て他のMTAに転送します。これによりメールが配送される仕組みになっています。MTAにはsendmailなどのソフトウェアがあります。
  • MDA(Mail Delivery Agent)
    MTAによってメールが転送された際に、MUAに渡す役割を持つソフトウェアです。

これを図にすると以下のようになります。

図1 メール配信の概念図

尚、前述した通り一般的にMUAはメールクライアント、MTAはメールサーバと呼ばれることが多いです。しかしSMTPでMTAからMTAに転送される際、送信側のMTAをメールクライアント、受信側のMTAをメールサーバと呼ぶこともあります。クライアント・サーバといった場合、何を指すのか混乱しがちなので注意が必要です。

電子メールのメッセージ構成

電子メールのメッセージは以下の3つで構成されます。

  • エンベロープ
    元々「封筒」の意味をもつ単語で、メールサーバ間でメールを転送するための送信元エンベロープFROM)、宛先エンベロープTO)が書かれた部分です。
  • ヘッダ
    宛先、送信元、経由したサーバ、送信時刻など、様々な情報が書かれた部分です。
  • 本文
    電子メールによって伝えたい情報を書いた部分です。

ビジネス上のやり取りでは本文が重視されますが(ビジネスメールなど)、情報処理試験ではエンベロープやヘッダの役割が重要で、これらの情報によってメールがどのようにやり取りされるか把握しておく必要があります。

特に重要なのは、メール送信の際に使用される宛先です。宛先はエンベロープとヘッダに書かれていますが、実際に配送に使用されるのはエンベロープの宛先情報です。

【補足】メールヘッダに記載される内容

メールヘッダには以下のような内容が記載されます。

ヘッダ説明
From送信者のアドレス。複数指定ができる。
Sender実際の送信者のアドレス。1件のみ指定できる。
To宛先アドレス。
Ccカーボンコピー先のアドレス。
Subjectメールの件名。

重要なのは、BCCのアドレスはメールヘッダには記載されない点です。BCCはブラックカーボンコピーのことで、一緒に送信されるものの受信者には知らされない宛先です。一方、エンベロープTOにはBCCのアドレスも追加されます。つまり、SMTPコマンドで送られるエンベロープと情報とヘッダの宛先情報は一致しません。

メールアドレス

メールアドレスはxxx@example.comの形式となっています。このうち、@より後の部分(example.comの部分)をドメインと言い、配送先を示す住所のようなものを表します。図1にあるとおり、MUAからメールを受け取ったMTAはドメインを見て、そのドメインを管理するDNSサーバに問い合わせをします。DNSサーバにはMXレコードというものがあり、そこに配送先のサーバの名前が書いてあります。MXレコードの書式は次のようになっています。

名前にはドメイン名が書かれ、データにそれに対応するメールサーバ名(FQDN)が書かれています。ドメイン名は複数設定することができ、優先度(データの先頭にある10,20という値)の値が小さいほうを優先的に選びます。これは何らかの状況でメールサーバが受信できない状況だった場合に、別のメールサーバを選べるようにするためです。また、優先度が同じものを複数用意することにより負荷分散をすることもできます。

メールサーバ名が分かると同じDNSサーバ内にあるAレコードを利用してIPアドレスへ変換され、配送するメールサーバが決まります。

SMTP

SMTPはメールクライアントから送信元のメールサーバへ、さらに送信先のメールサーバへメール転送を行うプロトコルです。メールのためのプロトコルとして最初に考案されたもので、現在もその中心となっているプロトコルです。TCP25番ポートを使用します。

メールクライアントで「送信」ボタンを押した際、まずTCPによるコネクションが作成されたのちSMTPのコマンドがメールクライアントによって展開されます。重要なコマンドはMAILコマンドとRCPTコマンドです。

  • MAILコマンド
    送信元を指定します。エンベロープFROMに設定された送信元名がMAIL FROM *** の書式で設定されます。
  • RCPTコマンド
    宛先を指定します。エンベロープTOに設定された宛先がRCPT TO ***の書式で設定されます。

尚、通常エンベロープはメールソフトによって作成されます。

【補足】SMTPコマンド、リプライとその流れ

SMTPでは、SMTPコマンドとその応答であるSMTPリプライによって成り立っており、その間で送信者、受信者、メールの本文などの情報がやり取りされます。

コマンド説明
HELOSMTPセッションでの通信開始
EHLOHELOの拡張版
MAIL FROM送信者のアドレスを指定する
RCPT TO受信者のアドレスを指定する
DATAメール本文の送信開始を知らせる
QUITSMTPセッションの通信終了
SMTPコマンド
リプライ説明
250成功、OKを示す。
221SMTPセッションの通信終了時に、成功を示す。
354メール本文を要求する。
451問題が発生したため処理を中断する。
500文法エラー。
SMTPリプライ

これらは以下の流れで行われます。

尚、DNSサーバへの問い合わせはSMTPコマンドに先立って行われます。

SMTPの問題点

SMTPの主な役割は、メールを転送することです。ネットワークの比較的初期に作られた仕組みであるためシンプルな仕組みとなっています。そのため、メールサーバがSMTPで転送する際に認証手順を持っておらず、基本的には何でも転送できてしまうことが問題となりました。外部の人がインターネットを通じてメールサーバを利用し、他のメールサーバへと転送することをオープンリレー(第三者中継)といいます。オープンリレーは悪意を持って行うことで迷惑メールの温床となり問題となりました。

図2 オープンリレー(第三者中継)のしくみ

ここから先はセキュリティ分野となるため別の記事に記載します。

タイトルとURLをコピーしました