電子メールの基礎まとめ【仕組み・SMTP/POP/IMAP・セキュリティを解説】

電子メールのブログに関するアイキャッチ画像 ネットワーク
広告

 電子メールは,インターネットを利用してメッセージやファイルなどを送受信するための代表的なサービスであり,基本情報技術者試験をはじめとする情報処理技術者試験で重要となる技術の一つです。私たちは日常的に電子メールを利用していますが,その裏側ではさまざまなプロトコルや仕組みが連携して動作しています。電子メールがどのように送信され,どのようなしくみで受信されるのか理解できていますか?

電子メール=ネットワークを利用してメッセージなどの情報を送受信する仕組み

 電子メールでは,送信や転送を行うためのSMTP,受信を行うためのPOPやIMAPなどのプロトコルが利用されています。また,画像や音声などのデータを扱えるようにするためのMIMEや,メールソフト・メールサーバーなどのしくみによって電子メールの送受信が実現されています。

 このページでは,電子メールについてシンプルにまとめています。電子メールの概要・しくみ,MIME,メールアドレス,メールソフト,SMTP/POP/IMAPによる送受信,Webメール,電子メールのセキュリティ(S/MIME,暗号化,認証,不正中継対策)を解説します。繰り返し確認して,確実に理解しましょう。

  1. 電子メール(e-mail)とは(概要と仕組み)
    1. 電子メールの仕組み(送信〜受信の流れ)
      1. MIME(Multipurpose Internet Mail Extensions)とは(多目的データ対応)
    2. メールアドレスとは(形式と役割)
    3. メールソフトとは(設定と送受信)
      1. 電子メールの送受信(操作と流れ)
    4. 電子メールのフォーマットとは
    5. メールサーバーとは(主な役割と機能)
  2. SMTP(Simple Mail Transfer Protocol)とは(送信と転送の仕組み)
    1. 電子メールの送信・転送(手順)
    2. SMTPのコマンド一覧(意味と例)
    3. SMTPリプライコード(分類と意味)
  3. POP(Post Office Protocol)とは(ダウンロード受信と制約)
    1. 電子メールの取り出し(流れ)
    2. POPのコマンド一覧(意味と例)
    3. POPのリプライ(分類と意味)
  4. IMAP(Internet Message Access Protocol)とは(サーバー管理と操作)
    1. 電子メールの取り出しなどの操作
  5. Webメールとは(ブラウザでの利用)
  6. 電子メールのセキュリティとは(脅威と対策)
    1. 電子メール送信時の基本対策(確認と注意)
    2. 電子メールの暗号化とは(本文と経路)
      1. S/MIME(Secure Multipurpose Internet Mail Extensions)とは(暗号化+認証)
    3. 電子メールの通信経路の暗号化とは
      1. SMTPS・POP3S・IMAP4Sとは
    4. メールサーバーの不正中継対策とは(認証とドメイン認証)
      1. 利用者認証方式
        1. POP before SMTPとは(認証前送信許可)
        2. SMTP-AUTH(SMTP Authentication)とは(認証付き送信)
      2. ドメイン認証とは
        1. SPF(Sender Policy Framework)とは(送信元認証)
        2. DKIM (DomainKeys Identified Mail)とは(署名による認証)
      3. OP25B(Outbound Port 25 Blocking)とは(送信ポート制限)
  7. まとめ
広告

電子メール(e-mail)とは(概要と仕組み)

 電子メールとは,インターネットなどのネットワークを利用して,(テキストなどの)情報を,メールソフトを使用して送受信するシステムをいいます。

※ ファイルや画像などを添付して送受信することもできる

電子メールの仕組み(送信〜受信の流れ)

 電子メールの仕組みは,次のとおりです。

電子メールの送受信のしくみに関する説明画像

 電子メールは,メールソフトで作成して,送信者から送信者が契約しているISPなどのメールサーバーに送信し,インターネット上のメールサーバーを経由して,受信者が契約しているISPなどのメールサーバーの受信者のメールボックスに届けられます(受信者に直接届けられるわけではありません)。

 届けられた電子メールは,受信者が,受信者が契約しているISPなどのメールサーバーの受信者のメールボックスから取り出すことにより受信します。

 会社などが公開サーバーを運営している場合,メールサーバーは,DMZと内部ネットワークに設置することが多いです。

電子メールの送受信のしくみ(会社など)に関する説明画像

 内部ネットワークの内部メールサーバーや端末(PC)を外部に公開しないことで,セキュリティレベルを高めることができます。

MIME(Multipurpose Internet Mail Extensions)とは(多目的データ対応)

 MIMEとは,7ビットのASCIIコードで記述された英数字以外のデータ(各国の文字や画像,音声など)を扱えるようにした規格のことをいいます。

※ 電子メールの初期の規格では,7ビットのASCIIコードで記述された英数字と一部の記号だけしか使用できなかった

メールアドレスとは(形式と役割)

 メールアドレスの形式は,次のようになっています。

メールアドレスの構成に関する説明画像

 ドメイン名の部分は組織名となっています。ローカルパートの部分はドメイン内で利用者を識別するための固有の名前となっています。

メールソフトとは(設定と送受信)

 端末(PCなど)のメールソフトについては,あらかじめ,メールアドレスや,電子メールの送受信に使用するメールサーバーなどの設定をしておきます。

メールソフトの設定に関する説明画像

電子メールの送受信(操作と流れ)

 電子メールの送受信は,メールソフトを使用して行います。

電子メールの送信に関する説明画像

 電子メールを送受信する場合は,送受信ボタンを操作します。電子メールを作成して送信する場合は,あて先電子メールアドレスを指定し,件名,本文などを入力して送信ボタンを操作します。

電子メールのフォーマットとは

 電子メールのフォーマットは,次のようになっています。

電子メールのフォーマットに関する説明画像

 メールヘッダーには,次のようなフィールドがあります。

From電子メールの送信者の電子メールアドレスを指定するフィールド。複数のメールアドレスをカンマで区切って指定することができる
To電子メールの主たる受信者の電子メールアドレスを指定するフィールド。複数のメールアドレスをカンマで区切って指定することができる
CcCarbon copyの略。Toフィールド以外で,電子メールの複製を配布したい受信者の電子メールアドレスを指定するフィールド。参考に読んでほしい受信者を指定することが多い
BccBlind Carbon copyの略。電子メールの受信を,他の受信者に公表すべきでない受信者の電子メールアドレスを指定するフィールド。ToフィールドとCcフィールドに指定した受信者から,Bccに指定した受信者の電子メールアドレスを隠ぺいすることができる
Subject電子メールの題名を入力するフィールド
Date電子メールが送信された日時を示すフィールド
Received電子メールが転送されるたびに,送信元,受信先などの情報が追加されるフィールド(受信者に近いほど,上になるように追加される)。詐称メールの経路特定などのために利用することができる
  Received: from 送信元 by 受信先 受信日時
Return-Path配送エラーが起きた場合の通知先を示すフィールド
Message-ID電子メールを一意に識別するためのメッセージ識別名を表すフィールド
In-Reply-To返信メールで,元の電子メールのMessage-IDフィールドの内容を表すフィールド。元の電子メールが複数ある場合は,すべての電子メールのMessage-IDフィールドの内容が追加される
Reference元の電子メールのReferenceフィールド(または,In-Reply-Toフィールド)と,元の電子メールのMessage-IDフィールドを表すフィールド

 MIMEヘッダーには,次のようなフィールドがあります。

MIME-VersionMIMEのバージョンを示すフィールド。現在のバージョンは,1.0
Content-Type電子メールの本文の種類を示すフィールド
・text/plain…ただのテキストメール
・text/html…htmlメール
など
Content-Transfer-Encoding電子メールの本文が,どのように表現されているかを示すフィールド

メールサーバーとは(主な役割と機能)

 メールサーバーには,電子メールを送信する送信用のサーバーと,電子メールを受信する受信用のサーバーがあります。

SMTPサーバーSMTPプロトコルにより,電子メールを送信・転送するサーバー
POPサーバーPOPプロトコルにより,電子メールを受信者に送り届けるサーバー
IMAPサーバーIMAPプロトコルにより,電子メールを受信者に送り届けるサーバー(受信者が選択した電子メールだけを送り届けることができる)。サーバー側で既読の管理や,フォルダ分けなどをすることができる

 また,メールサーバーや,電子メールを送受信する端末(PCなど)では,次のようなソフトウェアが使用されています。

MUAMessage User Agent。メールソフト(メーラー)。電子メールの作成や,送受信,保存などができるソフトウェア。電子メールを送信する際は,SMTPプロトコルを使用してMTA(MSA)に接続し,受信する際は,POPやIMAPプロトコルを使用してMRAに接続する
例)Outlookなど
MSAMessage Submission Agent。受け取った電子メールを認証し,MTAに転送するソフトウェア(下図のように,MTAにまとめられていることが多い)
MTAMail Transfer Agent(メール転送エージェント)。MSAや他のMTAから受け取った電子メールを,転送先のMTAに転送する(自身あての電子メールの場合は,MDAに転送する)ソフトウェア。SMTPプロトコルを使用して電子メールを転送する
MDAMail Delivery Agent(メール配送エージェント)。MTAから受け取った電子メールを,個々の受信者のメールボックスに保存するソフトウェア
MRAMail Retrieval Agent。個々の受信者のメールボックスに保存されている電子メールを,受信者のMUAに送信するソフトウェア。受信者がPOPプロトコルやIMAPプロトコルを使用して接続する際には(ユーザーIDとパスワードによる)認証も行う

 これらを図にまとめると,次のようになります。

メールサーバーの仕組みに関する説明画像

※ 名前解決の詳細は,「DNSの基礎まとめ(名前解決の問い合わせ方法)」を参照

広告

SMTP(Simple Mail Transfer Protocol)とは(送信と転送の仕組み)

 SMTPは,電子メールを送信したり,メールサーバー間で転送したりするためのプロトコルです。電子メールを,メールソフトからメールサーバーへ送信する際や,メールサーバー間で転送する際の,データ形式,伝送手順などが定められています。

TCPのポート番号25を使用する

※ 認証の機能はない⇒利用者認証をする場合は,POP before SMTPや,SMTP-AUTHを使用する

※ 暗号化の機能はない⇒SMTP通信全体をSSL/TLSで暗号化する場合は,SMTPSを使用する

電子メールの送信・転送(手順)

 電子メールの送信・転送は,TCPコネクション確立後に,次のような流れで行われます。

SMTPでのやり取りに関する説明画像

 電子メールを,クライアント(メールソフト)からSMTPサーバーに送信する場合も,同じような流れになります。

SMTPのコマンド一覧(意味と例)

 SMTPのコマンドには,次のようなものがあります。

HELOセッション開始を宣言するコマンド
例)HELO smtp01.example.co.jp
EHLOセッション開始を宣言するコマンド(SMTPの拡張仕様をサポートしている場合)
MAIL FROM送信元メールアドレスを通知するコマンド
例)MAIL FROM local@example.co.jp
RCPT TOあて先メールアドレスを通知するコマンド
例)RCPT TO u01@aaa.co.jp
DATAメールデータの送信開始を通知するコマンド。その後,実際にメールデータを送信する。メールデータの最後には,終わりを示すコードとして「.(ピリオド)」を付ける
QUITセッションを終了するコマンド
RSET電子メールの送信処理を中止するコマンド
VRFYユーザーを確認するコマンド
NOOP何もしないコマンド(SMTPサーバーの動作確認などに使用する)
HELPヘルプ情報を表示するコマンド

SMTPリプライコード(分類と意味)

220サービス準備完了
221サービス切断
250コマンドが正常に完了
354メールデータの送信開始
451サーバーエラーによる処理の中断
500構文エラー

※ リプライの200番台は処理の完了を,300番台は処置中を,400番台は一時的なエラーを,500番台は継続不可能なエラーを表す

広告

POP(Post Office Protocol)とは(ダウンロード受信と制約)

 POPは,電子メールをメールサーバーのメールボックスから取り出すためのプロトコルです。利用者が,メールサーバーのメールボックスから自分あての電子メールを取り出す際の,データ形式や,伝送手順などが定められています。利用者認証の仕組みも備わっています。

※ 現在は,主にPOP3(POPのバージョン3)が使用されている

※ POP3は,TCPのポート番号110を使用する

※ 認証時に使用するユーザー名やパスワードは平文で送受信される

※ 暗号化の機能はない⇒認証情報を暗号化する場合は,APOPを使用する。POPによる通信全体をSSL/TLSで暗号化する場合は,POP3S(POP3 over SSL/TLS)を使用する(APOPについては,脆弱性が見つかっているため,POP3Sの使用が推奨されている)

  • 電子メールを取り出す際は,すべての電子メールをクライアント(メールソフト)にダウンロードする
  • メールソフトで,既読の管理や,フォルダ分け,閲覧などをする
  • 取り出した電子メールは,(基本的には)メールサーバーから削除される

※ 複数の端末で1つのメールアドレスを利用したい場合には向いていない(取り出した電子メールが,メールサーバーから削除され,他の端末で受信することができなくなるため)⇒サーバー上で既読の管理などを行いたい場合は,IMAPやWebメールを利用する

電子メールの取り出し(流れ)

 電子メールの取り出しは,TCPコネクション確立後に,次のような流れで行われます。

POPでのやり取りに関する説明画像

POPのコマンド一覧(意味と例)

 POPのコマンドには,次のようなものがあります。

USERユーザー名を送信するコマンド
PASSパスワードを送信するコマンド
APOPチャレンジレスポンス方式の認証を要求するコマンド
STAT電子メールの数と,合計データサイズを表示するコマンド
LIST電子メールのリスト(一覧)を表示するコマンド。それぞれの電子メールの番号と,サイズを表示する。番号は,古い順に付けられる
RETR指定した番号の電子メールを取り出すコマンド
例)RETR 3(古い方から3番目の電子メールを取り出すという意味)
DELE指定した番号の電子メールを削除するコマンド
例)DELE 3(古い方から3番目の電子メールを削除するという意味)
QUITセッションを終了するコマンド
NOOP何もしないコマンド(POPサーバーの動作確認などに使用する)

※ USER,PASSは,利用者認証のために送信する

POPのリプライ(分類と意味)

+OK成功
例)+OK Logged in.(ログイン成功という意味)
-ERR失敗

※ リプライの後に,任意のメッセージが付加される

広告

IMAP(Internet Message Access Protocol)とは(サーバー管理と操作)

 IMAPは,電子メールをメールサーバーのメールボックスから取り出すためのプロトコルです。利用者が,メールサーバーにアクセスして,自分あての電子メールを確認したり,必要な電子メールを取り出したりする際の手順が定められています。また,利用者認証の仕組みも備わっています。

※ 現在は,主にIMAP4(IMAPのバージョン4)が,使用されている

※ IMAP4は,TCPのポート番号143を使用する

※ 暗号化の機能はない⇒IMAPによる通信全体をSSL/TLSで暗号化する場合は,IMAPSを使用する

  • 電子メールの一覧を閲覧して,必要な電子メールだけをクライアント(メールソフト)にダウンロードすることができる(電子メールの一部(ヘッダーなど)だけを取り出すこともできる)
  • メールサーバーで,既読の管理や,フォルダ分けなどをする
  • 電子メールは,メールサーバーに保存してあるので,複数の端末からアクセスすることができる

※ メールサーバーの容量(の上限)を超過しないよう,(古い)電子メールを削除する必要がある

電子メールの取り出しなどの操作

 電子メールの取り出しは,POPと同じような流れになります。

IMAPでのやり取りに関する説明画像

 また,その他にも,次のような操作ができます。

  • フォルダーの作成・変更・削除
  • 電子メールにフラグを付ける
  • 電子メールの検索
  • 電子メールの削除

※ POPの場合は,(基本的には)電子メールの取り出し(ダウンロード)しかできないが,IMAPの場合は,さまざまな操作を行うことができる

Webメールとは(ブラウザでの利用)

 Webメールとは,Webブラウザで電子メールの閲覧や送受信ができるシステムをいいます。Webブラウザで管理画面を開き,メールアドレスとパスワードなどを入力して利用者認証することにより使用できます。

※ Webブラウザがインストールされていれば,どんな環境からでも利用できる(メールソフトは必要ない)

※ Gmailなどがある

Webメールの仕組みに関する説明画像

広告

電子メールのセキュリティとは(脅威と対策)

電子メール送信時の基本対策(確認と注意)

 電子メールの送信時には,送信前に確認メッセージを表示し,あて先や添付ファイルなどの確認を促すようなメールソフトを使用するようにします。

電子メールの暗号化とは(本文と経路)

 電子メールの暗号化は,本文に対してのみ行われます。

※ メールヘッダー(あて先や送信元の情報,件名など)は暗号化されない

S/MIME(Secure Multipurpose Internet Mail Extensions)とは(暗号化+認証)

 S/MIMEとは,電子メールに暗号化と認証の機能を提供する(MIMEを利用した)規格のことをいいます。S/MIMEを利用することにより,電子メール本文の盗聴や改ざん,送信者のなりすましを防ぐことができます。

※ 送信者側と受信者側のメールソフトがS/MIMEに対応している必要がある(Outlookなどが対応している)

S/MIMEに関する説明画像

電子メールの通信経路の暗号化とは

SMTPS・POP3S・IMAP4Sとは

 電子メールの通信経路の暗号化には,SSL/TLSを利用します。

※ Webメールの場合は,HTTPSで暗号化する

メールサーバーの不正中継対策とは(認証とドメイン認証)

 メールサーバーが,スパムメールの踏み台として悪用されないようにするためには,電子メールの配送規則を設定しておきます。たとえば,(会社など)DMZに設置しているメールサーバーの場合は,次のように設定します。

  • 自ドメインあての電子メールのみを中継する(自ドメインあての電子メールでない場合は,自ドメイン(自ネットワーク)発信の電子メールのみを中継する)
  • 内部メールサーバーあての電子メールのみを中継する(内部メールサーバーあての電子メールでない場合は,内部メールサーバー発信の電子メールのみを中継する)

 また,メールサーバーが,不特定のクライアントからの接続を受け付ける場合(ISPなどの場合)は,利用者認証を行います。

利用者認証方式

POP before SMTPとは(認証前送信許可)

 POP before SMTPは,電子メールの送信前に,POPにより電子メールを受信(受信時に利用者認証が行われる)し,認証されたクライアントに対して,一定時間だけ電子メールの送信を許可する方式です。

※ 認証機能のないSMTPの代わりに,POPでログインさせ認証する

※ 既存の技術で対応できるため,広く利用されている

SMTP-AUTH(SMTP Authentication)とは(認証付き送信)

 SMTP-AUTHは,電子メールの送信時に利用者認証を行い,認証されたクライアントに対して,電子メールの送信を許可する方式です。

※ 認証機能のないSMTPに,AUTHによる認証機能を持たせた方式

※ クライアントとメールサーバーが,SMTP-AUTHに対応している必要がある

ドメイン認証とは

SPF(Sender Policy Framework)とは(送信元認証)

 SPFは,メールサーバーが電子メールの受信時に,送信元メールサーバーのドメイン名とIPアドレスの適合性を,送信元のDNSに問い合わせて認証する方式です。

※ 送信元を詐称した電子メール(迷惑メール)の受信を防ぐための仕組み

※ あらかじめ,送信元のDNSサーバーのゾーン情報にSPFレコードを追加しておく必要がある

SPFの例に関する説明画像
DKIM (DomainKeys Identified Mail)とは(署名による認証)

 DKIMは,メールサーバーが電子メールの受信時に,電子メールに付与してあるディジタル署名を利用して,送信元のドメイン名を検証し認証する方式です。

※ 送信元を詐称した電子メール(迷惑メール)の受信を防ぐための仕組み

※ あらかじめ,送信元のDNSサーバーに,送信元ドメインの公開鍵を登録しておく必要がある

DKIMに関する説明画像

OP25B(Outbound Port 25 Blocking)とは(送信ポート制限)

 OP25Bとは,ネットワークの(境界)ルーターなどで,外部に向けたポート番号25(TCP)の通信を禁止することをいいます。ISPなどが,利用者からのスパムメールの送信を防止するために行います。

OP25Bに関する説明画像

 モバイル環境や出張先など外部のISPを経由する場合は,ポート番号25を使用した電子メールの送信はできませんので,サブミッションポート(ポート番号587)を使用します。

※ サブミッションポート…電子メールを,メールソフト(利用者)からメールサーバーに送信する際に用いるポート(TCP)。一般的にはポート番号587を使用し,SMTP-AUTHによる認証が行われる ⇒ 利用者認証が行われるため,利用者からのスパムメールの送信を防止できる。SMTPSを用いて伝送路の暗号化を行う場合は,ポート番号465を使用する

まとめ

 今回は,インターネット上でメッセージやファイルなどを送受信するしくみである電子メールについてシンプルにまとめてみました。電子メールでは,メールソフトで作成したメッセージをメールサーバーに送信し,インターネット上のメールサーバーを経由して受信者のメールボックスに届けられます。電子メールのしくみを理解することは,ネットワークや情報セキュリティの基礎を理解するうえで重要です。

 理解が進んだら,基本情報技術者試験の過去問題等にもチャレンジしてみてください。