gooブログはじめました!

Windows 11で 学ぶ インターネット技術。

〇 電子メールはどうやって送受信? 意外と複雑なその規格。

今回は、インターネットの基本的なサービスである、電子メールについて解説する。受信で異なる規格を使うなど、意外と複雑だ。

電子メールは、インターネットで使えるサービスの代表格だ。送信者側と受信者側、それぞれの端末間で直接メッセージをやり取りするわけではなく、お互いに自分がアカウントを持つメールサービスのサーバー(メールサーバー)を介して、メッセージを送受信している(図1)。ただし、受信者側では手元の端末にメッセージが送られてくるわけではなく、端末側からメールサーバーに対して更新状況を確認し、必要に応じてサーバー上の「メールボックス」からメッセージを受け取る処理が必要となる。

電子メールの送受信の流れ
Θ 電子メールの送受信の流れ。
図1、電子メールは、送信者と受信者が直接メッセージをやり取りするのではなく、両者ともメールサーバーを介してコミュニケーションを図る。自分宛てに届いたメッセージは、サーバー上のメールボックスに保存される。

さまざまな規格を併用。

そのため電子メールでは、送信と受信で異なる規格を利用している。これらと、機器間で受け渡されるメッセージの書式(フォーマット)に関する規格が電子メールの基本だ(図2)。

主要な電子メールの規格
Θ 主要な電子メールの規格。
図2、電子メールに関する基本的な規格は、メッセージの送信、受信やメールボックスの操作、メッセージの書式の3つのグループに分かれる。

送信に関する規格は、端末からサーバーへの送信と、サーバーからサーバーへの送信で同じ規格が使われる。電子メールの通信の基本はここだ。一方、受信用の規格は、常時インターネットに接続しているとは限らないユーザーの端末でうまくメッセージを扱えるよう、送信用の規格とは独立して後から考案された。こちらは、2つの標準規格のほかに、マイクロソフトの独自規格や、Webサイトで電子メールを扱うWebメールといった技術なども利用される。これらは、用途やサービスに応じて使うものが決まる。

多くの情報を含むヘッダー。

最初に、メッセージの内容について見ていこう。そのフォーマットはIMF(Internet Message Format)という規格で定められている。

1通のメッセージは、そのメッセージに関する情報が記述された「ヘッダー」と、メッセージの本文や添付ファイルからなる「ボディー」で構成される(図3)。送信時には、これらが全てプレーンテキストのまま扱われる。

電子メールメッセージの構造
Θ 電子メールメッセージの構造。
図3、メッセージは、ヘッダーとボディーに分かれる。ボディーがさらに複数の要素に分かれる場合は、ヘッダーで指定された文字列で区切られる(赤下線部分)。

ヘッダーには、送信者、宛先、件名など、メールアプリの画面で確認できる項目以外にも多くの情報が含まれる。メールアプリの「Outlook」(図4)や、Webサービスの「Gmail」(図5)などには、ヘッダーを確認する機能が用意されており、実際に情報を見ることができる。

「Outlook 2021」でヘッダーを見る
Θ 「Outlook 2021」でヘッダーを見る。
図4、メッセージを別ウインドウで開き、「ファイル」→「情報」→「プロパティ」で情報画面を開くと、ヘッダーの内容を確認できる。
 
「Gmail」でヘッダーを見る
Θ 「Gmail」でヘッダーを見る。
図5、Webブラウザーでメッセージを表示し、メニューから「メッセージのソースを表示」を選ぶと、ソースの一部としてヘッダーの内容を確認できる。

ヘッダーは、1行ごとに異なる情報が記述される。各行は情報の種類を示す「フィールド名」で始まる。フィールド名には多くの種類がある(図6)。これらの情報は、送信者のメールアプリが送信時に付加するだけでなく、「Received」のように、通信を中継するメールサーバーによって追加されるものもある。

代表的なヘッダー
Θ 代表的なヘッダー。
図6、ヘッダーは、「フィールド名」とその内容の組み合わせが羅列された形になる。メッセージに関する各種の情報が得られる。

一方、ボディーの構造には、IMFに加えて、MIME(Multipurpose Internet Mail Extensions)という規格も関わる。

実は、IMFの規格では、使用できる文字が半角英数記号の127文字(US-ASCII)、1行の文字数は改行コードを含めず最大998文字(推奨値は78文字)という制約がある。電子メールは、もともと米国で英語のテキストメッセージのやり取りのために開発された技術がベースになっており、現在も一定の互換性を維持するため、制約がそのままになっているのだ。

一方で、インターネットの拡大によって、多言語対応やテキスト以外のデータを送るニーズも高まった。そこで、拡張規格として開発されたのがMIMEだ。

MIMEで多言語化や添付を実現。

MIMEの考え方を簡単に言うと、送りたい言語のテキストやファイルをUS-ASCII形式の文字列に変換(エンコード)するルールや、ボディー内に「本文」と「添付ファイル」などの複数の要素を入れるルールを定めたものだ。

図3の例だと、ヘッダーではMIMEのバージョン表記と「Content-Type」がMIMEに関するものだ。データの種類(タイプ)が「multipart/mixed」であることと、「boundary」という名前の文字列が宣言されている。タイプは、「種類/形式」という形で表現され、「multipart/mixed」は、ボディーのデータが複数の要素(実体)で構成され(multipart)、それらが本文と添付ファイルのように、独立したものが混在している状態であることを意味している(mixed)。

ボディー部分では、boundaryで宣言された文字列を区切りとして、複数のデータがUS-ASCII形式の文字列に変換されて記述される。それぞれのパートの先頭には、そのパートのデータのタイプとエンコード形式などの情報がMIMEヘッダーとして記述される。図3では、最初の部分は文字コードがUTF-8(ユニコード)のテキストで、base64という規格でエンコード。続けて、JPEG方式の画像データが、「IMG_0001.jpg」という名前のファイルとして格納されており、同じくbase64方式でエンコードされているということになる。MIMEで利用される代表的なタイプを図7に示す。

MIMEで指定できる主な「タイプ」
Θ  MIMEで指定できる主な「タイプ」。
図7、コンテンツの種類とコンテンツの形式(ファイル形式等)を「/」で並べて表記する。ヘッダーやボディーでは「Content-Type」で指定される。

ちなみに、図3の例では、ヘッダーのFrom、To、Subjectに日本語表記が含まれているが、実際のメッセージではこれらもエンコードされる。文字コードやエンコード方式はそれぞれのヘッダーで指定される。

送受信で異なるプロトコル。

次に、メッセージを送信する際の流れを見てみよう。

メッセージの送信には、SMTPというプロトコルが利用される。ユーザーの端末(メールアプリ)から送信用のメールサーバーに送る際にも、そのサーバーから宛先のサーバーに送る際にも、同じプロトコルが用いられる。

SMTPによる通信の流れを図8に示す。サーバー認証にはサービスが指定する方法を使用する。現在は悪用を防ぐため、端末から送信サーバーを利用する際には、認証がほぼ必須となっている。

SMTPによるメール送信の流れ
Θ SMTPによるメール送信の流れ。
図8、SMTPによるメッセージ送信の流れ。ヘッダーとは別に、送信者と受信者(宛先)が指定される。サーバー同士の通信も、同様の手順で行われる。

サーバーは、送信元から送られてくるメッセージのヘッダーから送信者や受信者のアドレスの情報を得るのではなく、送信プログラムによって送られるコマンドの情報を使う。ヘッダーとは異なるアドレスも指定できるため、送信代行サービスなどが活用しているが、送信者を偽装するのに悪用されることもある。

受信者側のメールサーバーに届いたメールは、受信用のプロトコルなどを使ってユーザーの端末で表示される。実際には、受信用の技術というより、メールボックスのデータを操作する技術という方が実態に即しているかもしれない。

インターネット標準の規格としては、POPとIMAPの2種類がある(図9図10)。POPは、メールボックスに届いたメッセージをユーザーの端末にダウンロードし、サーバーから削除。最終的なメッセージの保管はユーザー側で行うことを前提にした方式だ。バージョン番号込みで「POP3」とも呼ばれる。

POP
Θ POP。
図9、メッセージをアプリでダウンロード後、サーバーから削除することを前提にした方式。最終的に、メッセージの本体はユーザー側で残す。
 
IMAP
Θ IMAP。
図10、メッセージの本体はサーバーに残し、ユーザーのアプリから参照、管理することを前提にした方式。サーバー側にフォルダーを作って整理できる。

これに対し、IMAPはユーザーの端末からメッセージボックスのデータを参照し、遠隔でメッセージを確認することを前提にした規格だ。一定期間分のメッセージを、一時データとして端末に保存することが多い。実際の管理はサーバー上のデータを対象にするため、端末からメールボックス上にフォルダーを作ってメッセージを分類する、送信したメッセージのコピーをサーバーに保存するといった機能も備える。バージョン番号込みで「IMAP4」とも呼ばれる。

このほか、マイクロソフトの独自方式であるExchange(図11)、GmailのようにWebブラウザーでメールボックスのデータを直接扱えるWebメールといった方式も利用される(図12)。

Exchange
Θ Exchange。
図11、マイクロソフトが開発した方式。メッセージ本体はサーバーに置くことを想定。連絡先やスケジュールの情報を扱う仕組みも持つ。
 
Webメール
Θ Webメール。
図12、メールの送信や連絡先の管理なども含めたメールサービス全体を、専用のWebサイトを通じてサーバーを遠隔操作する形で利用する方式。

以上のように、電子メールではメッセージの送受信で異なるプロトコルが利用されるため、メールアプリの設定でも、異なる情報を登録する(図13)。送受信でサーバー名が異なることも多い。

Outlook 2021のサーバー設定
Θ Outlook 2021のサーバー設定。
図13、IMAPアカウントの設定画面。受信と送信で個別に設定する。SSL/TLSなどの暗号化を利用する際は、指定すべきポート番号が変わる。

電子メールのセキュリティ。

最後に、電子メールのセキュリティについて触れておく。

SMTPは、連載で以前解説したHTTPと同様に、通信を全て平文で行う。POPやIMAPも同様だ。そのため、現在は通信のセキュリティを確保するために、SSL/TLSを使って通信を暗号化することが多い。図13のように、メールアプリにも設定項目がある。

メッセージを第三者に読まれないようにする技術として、共通鍵暗号方式でボディー部分を暗号化して送るS/MIMEという技術もある。送信者と受信者の両者で電子証明書を取得する必要がある。このため導入のハードルは高いものの、業務に関するメッセージなどで、特に機密性が求められる場合に利用される。

セキュリティ上の問題としては、詐欺メール(フィッシングメール)への対策も重要だ。近年では、DNSサーバーに登録された追加情報を基に、実在の企業のメールアドレスを使って詐欺メールを送ることを防ぐ、SPF、DKIM、DMARCといった標準技術が開発され、少しずつ導入が進んでいる(図14)。

詐欺メール防止技術
Θ 詐欺メール防止技術。
図14、上の3種の規格を併用する。下はヘッダーに記録された検証情報の一部。赤字はSPFやDKIMの検証結果で、「怪しいが通過」といった位置付けだ。

また、Gmailなどでは送信者情報にアイコンを設定できる。これを規格化し、ブランドロゴ画像の悪用を防ぐ技術なども開発されている(図15)。

送信元とアイコンの検証技術
Θ 送信元とアイコンの検証技術。
図15、Gmailでは、送信者のドメイン名とプロフィール画像(企業ロゴ)が正当なものであるか検証する仕組みが導入されている。

ランキングに参加中。クリックして応援お願いします!

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「〝 たぬき の 「 スマホ & パソコン 」 ワールド 〟」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事