基礎からわかる!パソコン入門・再入門 / Word・Excel・PowerPoint・Outlook

SMTP・POP・IMAPとは|電子メールの仕組み

  • 著者:YAMANJO
  • 公開日:2008年7月27日
  • 最終更新日:2025年6月4日

電子メールはどのように送信されてどのように受信するのか、電子メールの仕組みについて学習していきましょう。

電子メールの仕組み

現在では、LINEなどの多機能アプリやSNSが普及し、携帯メールですら使用頻度は少なくなりました。そのため、多くの若い人がパソコンでメールを利用したことがないという時代になっています。

しかし、そうした中でもパソコンを利用した電子メールは、企業間における文書のやり取りやデータの送付などに欠かすことのできないツールとして利用され続けています。

なぜなら、電子書類が公式な書類として認められる時代になったからです。どのような仕組みで公式性を保証するのかについては順を追って学習していきますが、そうした電子データのやり取りに電子メールは欠かせません。公式なやり取りをSNSで行うことが社会的に適切と言える状況にはなっていないからです。

そのため、社会に出て初めてパソコンメールのスキルがないことに直面する新人も多いようです。メールの使い方については、基本操作 電子メール(Outlook)編 で詳しく解説していますが、まずは本項で電子メールの仕組みを理解しておきましょう。

パソコンのメールも携帯電話のメールもデータ伝送の仕組みは同じです。

インターネット上で通信を行うということは、IPによるパケット通信によって電子メールも伝送されています。(データ伝送の仕組みについては、パケットとルーティング を参照してください)

同項で学習のとおり、IPのみではデータの中身に関わらず(中身のデータ形式を判断せずに)ただ送り届けるだけになります。そのため、TCPによってアプリケーションソフトを示すポート番号を指定することで、データを目的のアプリケーションソフトに送り届けることができるようになっています。

ということは、TCPでポートを指定すればデータを届けられることになります。しかし、それだけでは電子メールとして機能しません。なぜなら、アプリケーション層のプロトコルに従って処理しなければ、それが何のデータであるかわからない(処理の仕方がわからない)からです。

したがって、単にTCPでポートを指定しただけでは電子メールとして処理することができません。これは電子メールに限らず、HTTPなどすべてのアプリケーション層のプロトコルに共通する原則です。

つまり、データ自体を送ることは可能ですが、そのデータを目的のアプリケーションソフトで処理するためには、アプリケーション層のプロトコルによってデータ形式を認識し、専門的に処理する必要があるということです。

電子メールでは、アプリケーション層のプロトコルとして「SMTP」、「POP」、「IMAP」といったプロトコルを使用します。詳細については後述しますが、複数のプロトコルが存在します。

なぜ、電子メールでは複数のプロトコルがあるのかと言うと、

電子メールでは送信プロトコルと受信プロトコルを分けている

からです。

その理由は、インターネットのWWW以外の要素 で学習のとおり、電子メールがWWWよりも前にインターネットの主要な要素として利用されていたからです。その当時の設計が現在も生きているというのが大きな理由です。

電子メールでは「送る側」と「読む側」の動作が分離された非同期的な設計が合理的とされ、複雑な機能を1つに統合するのではなく、明確に責任分離する設計になっていました。

どういうことかと言うと、メールは相手とコネクション(物理的な接続)を確立してから送るものではなく、郵便のように応答を得ることなく送っておいて、相手は受け取りが可能な時に受け取って見るという仕組みが最適だからです。

そのため、送信されたメールは直接相手のホスト端末(メールソフト)に届くわけではありません。メールの宛先はメールアドレスによって指定しますが、そもそもメールアドレスでは相手側のホスト端末まで特定することはできません。

例えば、メールアドレスは「sample@yamanjo.net」のような表記をします。@の後半はドメイン名になります。@の前半は任意の文字列でユーザー名を表します。

この例では「yamanjo.net」のドメインに所属する「sample」というユーザーに対してメールを送信することになります。つまり、メールアドレスではユーザーが利用しているサーバまでしか特定することができません。

ドメインとは、ドメインとDNS で学習のとおり、DNSによって特定のサーバのIPアドレスを取得する仕組みでした。この場合はメールサーバになりますが、メールアドレスではメールサーバのIPアドレスとユーザーが特定されるだけで、そのユーザーのホスト端末のIPアドレスが取得できるわけではありません。

したがって、

送信は受信者のメールサーバまでとなり、受信はメールサーバから受信者自身が受け取る

という仕組みになります。

これまでの学習のとおり、インターネット上で特定のホストのIPアドレスを特定することは困難です。その意味でも、送信と受信を分離することは理にかなっています。

逆に言えば、相手のホストに直接届くわけではないため、ホストを固定せずにメールを受信することが可能になっています。例えば、インターネットに接続されたPCであれば種類を問わず、メールソフト(メーラーと言う)に設定を入れることで、自分のメールサーバからメールを受信することが可能になります。

多くの場合、受信の操作はメーラーの「送受信」というボタンで行いますが、メーラーの起動と同時に送受信が自動的に行われるため、受信作業をほとんど意識することはありません。

スマートフォンの場合は、サーバからメールが到着した「通知」を受ける機能があり、通知を受け取るとアプリが自動的にサーバからメールを受信します。

そのため、ほぼリアルタイムでメールがスマホ本体に届くことになりますが、パソコンのメールと仕組みは同じです。iPhoneの場合は「プッシュ」というリアルタイム受信、「フェッチ」という指定した一定期間で受信する設定が可能となっています。

また、Yahoo!メールやGmailといったインターネット上で無料で利用できるフリーメールでも、メールが届くとプッシュ機能により通知されるのが一般的になっています。(フリーメールの使い方については、フリーメールとは を参照してください)

このように、電子メールは古い設計がそのまま現在も利用されているため、送信と受信の分離以外にもいろいろな制約やルール(暗黙のルールも含めて)があります。

中でも重要なルールが、

電子メールは7ビットのASCIIコードしか扱うことができない

という制約です。

ASCII(アスキー)コードとは、英字・数字・記号・制御文字を含む128種類の文字コードです。インターネットの初期に米国の標準コードとして利用されていた文字コードで、現在の様々な文字コードの原型になっています。

文字コードについては、文字コードとは で詳しく学習しますが、文字と英数字などを対応させたコード表のようなものです。例えば「あ」という文字を「E3 81 82」というコードに対応させています。文字コードには多くの種類があり、文字コードによっては「あ」に対応するコードが異なる場合があります。

そのため、どの文字コードを使っているかを明確にして、通信相手やアプリケーションソフトで一致させないと文字を正しく表示することができません。この文字コードが「ASCII」にしか対応していないということです。

7ビットというのは、1文字を表現するのに7ビットを使用するコードであることを意味します。したがって「27=128」文字しかコード化できない文字コードです。

なぜ、7ビット(128文字)なのかと言うと、アルファベット28文字であれば十分という想定で設計されているからです。これでは英語圏以外の国ではとても足りません。日本では一般的に2バイト(16ビット)以上の文字コードが利用されています。

つまり、電子メールはASCIIを前提とする当時の設計で今も運用されているということです。

そのため、日本語のコードでは電子メールを送ることができません。そこで、ASCIIに変換して送るという変換処理が行われています。詳しくは後述しますが、電子メールではあらゆるテキストや添付ファイルが、ASCIIに変換されて送受信されていることになります。

現在ではメールに様々なファイルを添付したり、メール本文に画像などを貼り付けることもできます。こうしたバイナリファイル(テキスト以外のファイル)もASCIIに変換されています。

電子メールでバイナリファイルを扱えるようにした規格を「MIME(マイム)」と言いますが、MIMEについての詳細は、MIME・S/MIMEとは で詳しく学習します。

電子メールの中身

では、電子メールの中身がどのような構造になっているのかを理解しておきましょう。

電子メールは、

「ヘッダ」と「ボディ」

の2つの部分から構成されています。

ヘッダ部分は、パケットとルーティング で学習したパケットのヘッダと同様に、そのメールに関する情報が記述されています。メールのタイトルや送信者の名前、メールアドレス、送信日付、宛先のメールアドレスなどです。

ヘッダには、こうした送信元の情報が記載されており、誰が、どこから、どのような経路で転送されてきたのかが記載されています。メールが配送経路をたどるごとに、途中のメールサーバによって段階的に追記されていきます。

下図は、メールソフト「Outlook」のヘッダ情報が確認できるプロパティ画面のイメージです。

Outlookの「プロパティ」画面のイメージ

スクロールバーが確認できるとおり、かなりのボリュームの情報が格納されていることがわかります。現在では、複数のメールサーバを経由することが多く、情報がかなり多くなっています。

電子メールの代表的なヘッダ項目
項目 意味
From 差出人(送信者)
To 宛先(受信者)。複数の指定も可能
Cc カーボンコピー(同報)。メインの受信者以外にも共有したい相手に送る。受信者にはCcのアドレスが見える。
Bcc ブラインドカーボンコピー(同報)。メインの受信者以外にも共有したい相手に送るが、受信者にはBccのアドレスが見えず、同報通知されていることを秘匿にできる。
Subject 件名。
Date メールの作成日時。
Message-ID メールの一意識別子。日時やドメイン名を含むことで、ほぼ重複のない世界中での一意性が実現される。原則として送信元のメーラーが生成する。データ長の決まりはないが、30~80文字程度が一般的。
MIME-Version MIMEのバージョン(通常は1.0)
Content-Type テキストに変換される前の元データの形式を示す。text/plain(プレーンテキスト)、text/html(HTML形式)、multipart/alternative(プレーンテキストとHTMLの両方を含む)、multipart/mixed(添付ファイルなどを含む複数の内容)など。
Received 経由したSMTPサーバの情報。上に追加されていく。
Return-Path エラー時の返送先アドレス。実質的に送信元のアドレス。

To、Cc、Bccの使い方やメーラーの操作については、電子メール(Outlook)編 で詳しく学習しますが、メールが複数のSMTPサーバを経由するたびに「Received」項目などが追記されていきます。

そのため、メールには送信元から受信者までの経路情報が蓄積されています。これらヘッダ情報によって迷惑メールの判別なども行われています。

基本的にヘッダ部分はASCIIで文字で記述されるため、変換の必要がなくそのまま送信されます。件名(Subject)などに日本語が使用される場合は、該当部分のみASCIIに変換されますが、大部分は人間でも解読することが可能です。

そして「ボディ」は、メッセージの本文になります。

特定の形式や項目はなく、メッセージが記述される部分になりますが、先述のとおり、このままでは電子メールとして送信できないため、7ビットのASCIIに変換する必要があります。

ただ厳密に言えば、日本語の文字コードそのものをASCIIコードに変換するわけではなく、日本語などの文字コードで表現されたコード値をASCII文字(ASCIIで表現可能な文字)に変換することになります。

例えば「日本」という文字を変換するとします。現在よく使われている「UTF-8」という文字コードでは、「日=E6 97 A5」で「本=E6 9C AC」になります。

このコード値「E6 97 A5 E6 9C AC」をASCII文字に変換します。すでに英数字なので変換する必要がないように思えますが、これは16進数で表現されており、ビット列までたどると「日=11100110 10010111 10100101」となります。

つまり、1文字を表現するのに24ビット(3バイト)使用しています。電子メールは、1文字に7ビットのASCIIコードにしか対応してないので、7ビットまでしか送れません。1文字に8ビット以上で表現するコード値をそのまま送ると、8ビット目以降が欠損するなどの可能性があるからです。

そこで、ビット列を「6ビット」ごとに分けます。6ビットにするのは、3バイト(24ビット)コードで1文字を4分割できるからです。

つまり、元の「11100110 10010111 10100101」を「111001 101001 011110 100101」にして、4文字のASCII文字を割り当てます。この場合は「5pel」になります。「日本=E6 97 A5 E6 9C AC」全体では「5pel5pys」になります。

こうして実質的に6ビットの文字に変換して送受信することになります。つまり、128種類あるASCII文字のうち、6ビット分64種類のASCII文字しか使われていないことになります。

このように、64種類の文字に変換することから、この変換方法を、

Base64(ベース・ロクジュウヨン)

と言います。

少々ややこしいですが、日本語などの1文字を8ビット以上で表現する文字コードを、Base64によって6ビットのASCII文字にエンコード(変換)しているということになります。

Base64は「6ビット」単位でエンコードする方式なので、その文字コードの使用ビット数が6ビットで割り切れないときは、最後に足りないビットを「0」で埋めて6ビットにしてエンコードします。

例えば、2バイト(16ビット)コードであれば、3バイト(18ビット)に分割して、不足する2ビット分の「00」を付け加えてエンコードするようになります。

エンコード方式については、MIME・S/MIMEとは でも学習しますが、まず電子メールでは、7ビットの文字コード(ASCII)しか取り扱うことができないという大きな制約があることを知っておきましょう。

ただ、これも様々な技術によってユーザーが意識することなく、どのような形式のファイルでも送受信できるようになっています。(現在では8ビットにも対応している場合が多くなっています)

SMTPPOP

では、電子メールがどのように転送されていくのか理解していきましょう。

先述のとおり、送信は「SMTP(エスエムティーピー)」、受信は「POP(ポップ)」という代表的な2種類のプロトコルが使用されています。SMTPは「Simple Mail Transfer Protocol」の略で、POPは「Post Office Protocol」の略になります。

どちらも電子メールの初期から利用されている古いプロトコルで、仕組みとしては単純です。

SMTPもPOPもメールの中身を解釈することなく(関与することなく)メールの転送のみを行いますが、そのデータが「メールである」とこは認識し、メールとして送受信する前提で動作します。

電子メールの送受信の流れを図にすると以下のようになります。

電子メールの送受信の流れのイメージ図

1.Aさんがメーラーから電子メールを送信
2.Aさんのメールサーバにメールを転送
3.DNSにより、Bさんのメールサーバを検索(メールアドレスのドメインよりIPアドレスを検索)
4.Bさんのメールサーバにメールを転送
5.Bさんのメールサーバからメールをダウンロード(Bさんがメールをダウンロードするまで保管)
6.Bさんのメーラーで電子メールを見る

という流れになります。

Aさんがメールを送信する時と、AさんのメールサーバからBさんのメールサーバに転送される時はSMTPプロトコル、Bさんがメールサーバからメールをダウンロードする時はPOPプロトコルで通信されます。

それぞれSMTPサーバ、POPサーバと呼ばれていますが、基本的にはメールサーバにどちらも内包されています。メーラーの設定にはSMTPサーバとPOPサーバの設定箇所があり、それぞれドメイン名や指定されたアドレスなど指定するようになっています。(同じメールサーバであるため、どちらも同じ場合が多いです)

電子メールは、受信相手のPOPサーバまで転送され、受信相手がPOPサーバからメールをダウンロードするまでメールサーバに保管されたままになります。(ダウンロード後も残しておく設定も可能です)

POPは現在のバージョンを付けて、

POP3(ポップ・スリー)

と呼ばれることもあります。

現在といってもPOP3は1990年頃から利用されており、その当時のバージョンが普及したことからPOP3と呼ばれています。一方、SMTPは改定されてもバージョン番号を付けなかったため、ずっとSMTPと呼ばれています。

このように、送信と受信でプロトコルを分けて非同期的な送受信構造を持つ通信モデルを「メッセージ交換方式」と呼びます。

メッセージ交換方式は、パケットとルーティング で少し触れましたが、中継するホスト(主にメールサーバ)がメッセージを一時的に保存して、完全にメッセージを組み立ててから次へ転送する方式です。

中継点ごとに完全な状態になってから送信されるため、ネットワークトラブルにも柔軟に対応することができ、送信の確実性が高い転送方式になっています。(ただし、速度は遅くなります)

先述のとおり、電子メールは相手がすぐに受け取れることを前提とした仕組みではありません。相手とコネクションを確立してから行う通信ではないため、通常のパケット通信のように受信者側で組み立てることが困難です。

そのため、SMTPとPOPによって送信と受信が分離し、非同期でも機能するメッセージ交換方式を選択したということです。こうした仕組みから、電子メールは自分から自分のメールアドレスに送信して受信することも可能になっています。

また、どちらも古いプロトコルのため、当然ながらセキュリティ機能は非常に脆弱です。

昨今、電子メールからマルウェア(悪意あるプログラム)に感染する例が多く、電子メールのセキュリティ確保が非常に重要な課題になっています。(マルウェアについては、マルウェアの種類と特徴 で詳しく学習します)

しかし、SMTPとPOPには盗聴や改ざん、なりすましなどを防止する機能がありません。そこで現在では、SMTPとPOPにセキュリティ機能を追加して暗号化通信を行うプロトコルが利用されています。

SMTPで暗号通信を行うプロトコルを「SMTPS」、POPで暗号通信を行うプロトコルを「POP3S」と言います。SMTPSとPOP3Sについては、次項で詳しく学習しますが、通信のベースはSMTPとPOPであり、基本的な通信の仕組みは変わりません。

IMAP

このように、SMTPとPOPによって電子メールは成り立っていると言えますが、受信プロトコルはPOPだけではありません。

送信プロトコルは実質的にSMTPだけになっていますが、受信プロトコルとして主に利用されているものは2つあります。それが「POP」と「IMAP(アイマップ)」です。

なぜ2つあるのかと言うと、POPの仕組みでは利用に困る場面が出てきたからです。POPでは、サーバからメールをダウンロードして、ローカル(自分のパソコンなどのホストのこと)に保存するという使い方が基本でした。ダウンロード後はサーバーからメールが削除される仕組みになっています。

そのため、自宅や会社など複数の端末でのメール管理が難しくなるという問題が出てきました。つまり、POPでは各端末が別々にメールをダウンロードするため、複数の端末で同期が取りづらいということです。自宅のPCにはメールがあるのに、会社のPCにはないといったことが起こるわけです。

これを解決するために開発されたのがIMAPです。IMAPは「Internet Message Access Protocol」の略で、メールをダウンロードしないでサーバに置いたまま見ることができます。

IMAPはメールをサーバー上で管理しつつ、すべての端末がサーバの最新状態を参照することができます。このことにより、すべての端末がサーバと同期を取ることが可能で、例えば、自宅のPCで読んだメールが会社のPCでも既読になるなど、端末間で同じ状態を共有することができるようになります。

また、メールのヘッダ情報や本文を必要に応じて部分的に取得することも可能になっています。つまり、メール全体ではなくヘッダやボディといった部分取得が可能ということです。

実際にはもっと細分化した取得が可能で、例えば件名、送信者、日時などだけを先に取得して、本文や添付ファイルは取得しないといった条件設定が可能で、必要な情報だけ取得することで通信量を減らし、複数端末での高速表示を可能にしています。

ただし、個人のメーラーでこうした細かい設定は困難で、例えば、スマートフォンのメールアプリでクリックされたら本文を取りに行くような設定がされていたり、企業のメールシステムで高度に設定されているといった用途で利用されています。

POPは基本的にメールを丸ごと一通ずつダウンロードするプロトコルであり、例えば10MBの添付ファイルを見るだけでも丸ごとダウンロードする必要があります。

POPでもダウンロード後にメールを残しておく設定も可能と説明していますが、これは、そのままの意味でサーバに残しておくだけです。サーバと同期を取るわけではなく、削除などによりサーバとローカルでずれが生じる場合があります。

IMAPは最新のバージョンを付けて、

IMAP4(アイマップ・フォー)

と呼ばれることもあります。

POP3と同様に1990年代にIMAP4が発表されましたが、2000年代に「IMAP4rev1(IMAPバージョン4リビジョン1)」が発表され、実質的にIMAP4rev1がIMAP4と呼ばれています。

POPとIMAPのシェアについては、現在では圧倒的にIMAPが主流になっています。PCだけでなくスマホやタブレットなどのモバイル端末が普及し、クラウド上(サーバ上)に保管したまま、それぞれのデバイスで同期させることが可能だからです。

Gmail、Outlook.com、Yahooメールといった大手サービスもIMAPを推奨しており、現在主流のメーラーでは、IMAPがデフォルト(初期設定)の受信方式になっています。

ただし、あえて同期を取りたくない(意図しない削除に備えておく場合など)場合は、POPが選択されます。

IMAPもSMTPやPOP同様にセキュリティが脆弱なため、セキュリティ機能を追加した「IMAPS」が利用されています。詳しくは次項で学習しますが、これもIMAPとベースは同じで仕組みは変わりません。

更新履歴

2008年7月27日
ページを公開。
2009年5月17日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年1月30日
ページをSSL化によりHTTPSに対応。
2025年6月4日
内容修正。

著者プロフィール

YAMANJO(やまんじょ)

経歴
岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
関連リンク
詳細なプロフィールはこちら
作成したボカロ曲などはYoutubeへ
X(Twitter)
著者YAMANJOのイメージ画像