過去の連載

コンピュータ基礎講座

コンピュータ講座応用編

デジタル放送講座

アンケート

第2回 eメールが届く仕組み

PDFダウンロード

インターネットを利用したサービスにおいてよく使われているのが「eメール」です。今やeメールはビジネスにおいても日常生活においても電話と並ぶ身近なコミュニケーション手段の一つとなっています。
eメールの仕組みは、アプリケーションソフト(メールソフト、メーラー、メールクライアントソフトなどと呼ばれる)によって作成された文書データが「TCP/IP」によりパケット化され、各種のサーバを介して送信先に送り届けられるというものです。

【今回登場するキーワード】

  • (メール)サーバ
  • SMTP(Simple Mail Transfer Protocol エスエムティーピー)
  • POP3(Post Office Protocol ポップスリー)
  • DNS (Domain Name System) ドメインネームシステム
  • バウンスメール
  • メールヘッダー
  • 添付文書とBASE64(ベースロクヨン)
  • 迷惑メール
  • Webメール(ウェブメール)

メールシステムを支える各種のサーバ

インターネット上でメール文書が間違いなく相手先に送り届けられるのは、各種のサーバがそれぞれ連携して働いているからです。メールシステムは次のようなサーバの働きによって機能しています(図1)。

  1. メールの送信・受信に関わる「SMTP (Simple Mail Transfer Protocol)サーバ」
  2. 受信したメールを蓄積し、要求に応じて目的のメールをユーザー端末に渡す「POP (Post Office Protocol)サーバ」
  3. 送信先メールアドレスに対応する送信先IPアドレスを探し出す「DNS (Domain Name System)サーバ」

あらためて「サーバ」について説明しておきましょう。「サーバ」とはサーバコンピュータのことで、その基本的仕組みはPCと同じです。ただサーバコンピュータはネットワークに接続して24時間稼働するので連続運用にも耐えられる信頼性や、稼働したままメンテナンスができるなどの機能を備えています。

このような信頼性の高いサーバコンピュータに各種のソフトウェア、例えばSMTPのプログラムをインストールすれば1の「SMTPサーバ」に、またDNSのプログラムやデータをインストールすれば3の「DNSサーバ」として機能し始めるのです。1台のサーバに複数のプログラムをインストールしていくつもの働きをさせることも可能ですが、やり取りするデータが膨大になることを考慮し、単機能で動作させるのが一般的です。

インターネットの多様な機能を支える多様なサーバ

LANやインターネットの世界でデータをやり取りする上で重要な働きをしているのがサーバです。LAN環境で働くサーバとしては複数の端末でデータを共有する「ファイルサーバ」や、ネットワークを介して1台のプリンタを共有するための「プリンタサーバ」などがあります。一方、インターネットやイントラネットなどTCP/IPネットワークの世界で働くサーバには、次のように数多くの種類があります。

  1. Webサーバ
    Webページのファイルを記憶し、ブラウザソフトからのリクエストに応えてファイルデータを配布する。
  2. SMTPサーバ
    メール送信を担当するサーバ。PCから送られたメールを受け取って、相手のメールボックスにメールを送り届ける。
  3. POPサーバ
    SMTPサーバから送られメールボックスに蓄積したメールを、PCからの要求に応じて取り出す。
  4. DNSサーバ
    IPアドレスとドメインネームを変換するサーバ。
  5. PPP (Point-to-Point Protocol)サーバ
    ダイヤルアップでインターネットに接続する場合の橋渡し役をするサーバ。
  6. プロキシサーバ
    LANとインターネットの間に位置し、LAN内のPCの代理としてWebサーバにアクセスする役割を持つ。
  7. ファイアーウォールサーバ
    LANとインターネットの間に位置し、インターネットからLANへのアクセスやデータの漏洩を防ぐ。

メール送信の仕組み

eメール送受信は次の5つのステップを経て行われています。

メールソフトで作成したデータをメールサーバ(SMTPサーバ)に送信

メールサーバがDNSサーバに対して送信先IPアドレスを照会する

送信先IPアドレスを持つメールサーバに向けてメールデータを送信

送信先ユーザーが認証のうえで送信先メールサーバをチェック

受信メールを取り出す

この5つのステップを郵便システムに置き換えてみると次のようになります。

eメールシステムの場合、ユーザーはメールソフト上でメール文書を作成し、送信ボタンを押すだけで受信側のメールサーバに送り届けられますが、裏側では図2のようにメールサーバ、DNSサーバが連携して働いています。

  1. メールソフトで作成されたデータは、まず送信側のメールサーバ(SMTPサーバ)に送られる
    この時のやり取りはSMTPと呼ばれるプロトコルにしたがって行われます。少し詳しくみるとSMTPはTCP/IPプロトコルの上位で働いています。つまり、まずメールソフトがメールサーバに対してTCPで接続状態を作りだし、その上でSMTPにしたがってデータをメールサーバに送信しているのです。個人でISPを利用している場合、メールサーバはISP内にあり、企業では社内LANに設置されていることが多いようです。
  2. メールサーバは受け取ったメールの宛先アドレスをDNSサーバに照会する
    eメールで使われているメールアドレスは郵便システムの宛先住所・氏名に当たるもので、eメールが間違いなく相手先に届く手がかりとなるものです。メールアドレスは図3のようにユーザーに分かりやすいよう表記されているのですが、メールサーバは受信側のIPアドレスを識別して送信するので、メールアドレスをIPアドレスに置き換える必要があります。これを行うのがDNS (Domain Name System)です。メールサーバは最寄りのDNSサーバに照会してメールアドレスに対応するIPアドレスを教えてもらい、同アドレスのメールサーバにメールデータを送信します。郵便システムでは宛名から判断して郵便物を配送するのは人間なので、宛名は一貫して文字でよいのですが、eメールシステムでは文字を頼りに送信・受信の手続きをする人間の他、「1」「0」の数値を読み取るコンピュータが介在します。そのためにメールアドレスとIPアドレスを照合するDNSが必要となります。
    DNSサーバはインターネットメールの要となる装置であることからプライマリーとセカンダリーの複数のDNSを設置する場合があります。企業などはとくにメールシステムの信頼性を高めるためにセカンダリーDNSを外部に設置するなどしています。

  3. 送信側メールサーバはメール転送プロトコルSMTPにしたがって、メールデータを送信先メールサーバ(SMTPサーバ)に転送
    この時も、まずTCPプロトコルによって受信側メールサーバとの間に接続状態を作り出し、その上でSMTPに従いデータを送信しています。
  4. 受信側ユーザーはメールソフトを使い、POP3プロトコルにしたがって確かに受信側ユーザーであることを認証してもらう
    メール送信時はSMTPに従いましたが受信時はPOP3によって行われます。受信時のプロトコルPOP3の特徴は認証の手続きを行う点にあります。認証はもちろん、本来の受信者以外のユーザーが誤ってメールを受け取ることがないようにするものです。メールソフトの設定で「受信メールのユーザー名とパスワード」を設定するのはこのためです(図4)。
  5. 認証後、POP3に従ってメールサーバ内の着信メールを確認し取り出す
    現在、POPは最新バージョンの「POP3」が使われています。また「POP3」のほか、「IMAP4(Internet Message Access Protocol4 アイマップフォー)」と呼ばれるプロトコルも使われています。「IMAP4」はモバイル機器用メールソフトとしてよく使われ、タイトルや発信者を確認してから受信するかどうかを決めることができるなどの特徴を持っています。

メール送信時のエラーメッセージの意味

何らかの理由で相手先のSMTPサーバがメールを受信できない場合、エラーが発生したことを知らせる「バウンスメール」が返信されてきます。バウンスメールに記載されるメッセージには次のような種類があり、その内容からおおよそのエラー原因を知ることができます。

「User unknown」=ユーザーが不明。(図1の受信側ユーザーが存在しない)
「Host unknown」=ドメイン名が不明。(図1の受信側メールサーバが存在しない)
「Message size exceed fixed maximum size」=メールのサイズが大きすぎて受信できない。
「Mail box full」=受信側のメールボックスが満杯で受信できない。

世界中のIPアドレスとメールアドレスを照合するDNSの仕組み

インターネット上には何万台ものDNSサーバがあります。あるドメイン名に対応するIPアドレスを検索してもらう場合、何万台ものDNSを総当たりで調べるわけにはいきません。そこでDNSではDNSサーバを階層化し(図7)、下位のドメインを管理するDNSサーバをすぐ上位のDNSサーバに登録するというように順に登録する方法を採っています。このように階層ごとのDNSがドメイン名とIPアドレスのデータを分担して保持すれば、国別のドメイン記号を管理するDNSサーバから、下位の組織種別のドメイン記号を管理するDNSサーバへとたどる方法で容易に、効率的に目的のドメイン名とIPアドレスを分担にたどり着くことができるわけです。

電子メール1通ごとに付けられる「メールヘッダー」

受信したeメールのそれぞれには図8のような「メールヘッダー」と呼ばれるデータがついています。メールヘッダーにはメールの送信者、受信者、経由したサーバや題名などが書き込まれており、受信側のメールソフトはこのメールヘッダー情報をもとにして受信メール一覧の表示、返信時のアドレスを書き込んでいるのです。

ほとんどのメールソフトでは、普段メールヘッダーは表示されない設定になっていますが、「メールヘッダーを表示する」などのメニューを選択することで簡単に表示することができます。メールヘッダーの最初の部分には、メールが経由してきたメールサーバが下から順に記述されています。送信メールが何らかの理由で戻ってきた場合、メールヘッダーを表示し「Received」の欄をたどっていくと、どこまで届いていたか確かめることができます。

MIMEで送信される日本語やデータ

インターネットのeメールシステムで使われるプロトコルSMTPは、もともと英語圏のテキストであるASCII(American Standard Code for Information Interchange アスキー)コードをやり取りする前提で設計され、これと異なる日本語文字や1行が1000文字を超える長文データ、また画像や音声、アプリケーションデータなど(バイナリーデータ)は送信できませんでした。この制約をSMTPに手を加えずに取り払い、ASCII文字以外の文字、たとえば日本語や画像、動画や音声データ、表計算データなどを送信できるようにする規格がMIME(Multipurpose Internet Mail Extensions マイム)です。

実際にeメールで画像データなどを送る場合「添付ファイル」をクリックする操作を行いますが、この時メールソフトは画像データをASCIIコードに変換(エンコード)しているのです。また受信側が、受け取った添付ファイルを開封する場合、メールソフトはエンコードされたデータを画像データに戻して(デコード)いるのです。MIMEではエンコード方式としてBase64と呼ばれる方式を採用しています。

Base64の考え方

そもそも、インターネットのメールシステムに用いられるテキスト(ASCIIコード)がなぜ7ビットなのか? それはASCIIコードが制定された1963年当時、コンピュータが扱うデータの最小単位は8ビット(8桁の0と1)で、8ビット目を通信における誤り検出(パリティチェック)用ビット(パリティビット)として使用していたこと、そして7ビット=128通り以内でアルファベットの大文字、小文字、数字や@、%、?()などの記号類、空白文字などを表すことができたからです。

しかしインターネットが世界中に普及し、ASCIIコードによる文字つまり英語圏以外の文字や、画像や音声など8ビットで表されるデータをメールシステムでやり取りする必要性が高まり1992年にMIMEが登場します。MIMEの登場によってインターネットメールは「7ビットの呪縛」から解き放たれ、広く世界の文字文化とeメールとを結び付けたことになります。

このMIMEで採用されているBase64とは、英数字ASCII文字だけを用いて英数字以外の文字やバイナリーデータを表すデータ変換(エンコード)方式で、名前の「64」はエンコードに用いられるASCII文字のA〜Z、a〜Z、0〜9と記号類(+と/、=)の合計64に由来しています。

Base64の手順は(英数字の場合)、

  1. エンコードしたい元データの文字列を前から順に3バイト(3×8ビット=24ビット)ずつ取り出し、これを6ビットずつに分割し直す(6ビットに満たない部分には 0 を追加して6ビットに揃える)。
  2. 6ビットに分割した2進数に対応するASCIIコードの文字、数字、記号に置き換え(エンコード)。

例えば文字列「ABC」(3バイト)をBase64でエンコードしてみましょう。

日本語を置き換える場合は、各文字の文字コードの2進8ビットで表し、同様にASCII文字(A-Z, a-z, +, /)にエンコードします。インターネットのメッセージで使う文字コードはISO-2022-JPと定められています。これ以外の文字コードを使ってはいけないというわけではありませんが、他の文字コードの場合、文字化けを起こす可能性があります。

増え続ける「迷惑メール」とその対策

eメールは郵便システムに比べ、はるかにスピーディーで送信コストも安く大変便利なものですが、これを悪用した「迷惑メール」が増加の一途をたどり大きな問題となっています。迷惑メール対策を推進する業界団体でメール認証技術の標準策定作業を推進するMAAWG (Messaging Anti-Abuse Working Group)による、2006年第4四半期におけるインターネット上の全メールのなんと75パーセントが迷惑メールによって占められているといいます。

「迷惑メール」は「スパムメール」とも呼ばれ、その内容は一方的な商業広告の送りつけから、「〜のために、このメールを○○人に転送するように」と書かれたチェーンメールなど様々です。郵便ダイレクトメールのように切手代がかかるといったこともなく、ヘッダの発信元を書き換えて送りつけることができるなどの理由で増え続けているのです。メール受信時にはユーザーの認証が必要ですが、SMTPによって送信する場合、認証を必要としないことが多いことを思い出してください(図2の1。最近ではSMTPで送信時に認証を求める機能も利用されている)。迷惑メールはこうしたeメールシステムのスキを突く手口から、手の込んだものまでさまざまで、最近では発信元をくらますためにロボットのように遠隔操作で動作する迷惑メール送信プログラムを数多くのPCにばらまいて感染させ、あちこちのメールサーバに一斉に迷惑メールを送信させる「ボット」型も登場しています。

「迷惑メール」は開封した人を不快にしたり、必要なメールの読み出しの邪魔になったりするだけでなく、インターネットを混雑させメールサーバやDNSサーバに負荷を掛けることになります。そこで採られているのが次のような迷惑メール対策です。

  1. 送信側ユーザーでの対策

    「ウイルスチェックソフト」
    ユーザーがセキュリティ対策ソフトでボットなどに感染していないかチェックする。

  2. 送信側メールサーバでの対策
    件名や本文、添付ファイル内容の語句をチェックし、迷惑メールと判定されたメールは転送しない。一度に大量に送信するなど、迷惑メールの危険性が高い送信を拒否する。
  3. 受信側のメールソフトで機能する次のような迷惑メール検出法

    「ルールフィルタ」
    あらかじめ迷惑メールとみなす語句ルール集を作成し、件名や本文に該当する語句を検知した場合、迷惑メールと判定し処理する。(例:「格安」「出会い」など)

    「シグネチャ・マッチング」
    過去に検出された迷惑メールのパターンを記録したデータ(シグネチャ)をデータベース化しておき、本文や件名、ヘッダ中の語句と照合し、一定の計算ルールに従って迷惑メール度を算出し判定する。誤検知が少ない。

    「ブラックリスト参照」
    ユーザーが定義したブラックリストを参照して迷惑メールの判定をする。第三者組織によるスパム発信IPアドレスのリスト(リアルタイムブラックリスト)に問い合わせて判定する。

  4. 受信側メールサーバで機能する迷惑メール対策

    「グレイリスティング」
    受信側メールサーバに対して初めてSMTP接続してきたIPアドレスに対し、いったん受信を拒否し、同時にIPアドレスをデータベースに記録。ボットも含めて迷惑メールは、いったん受信を拒否されると再送信してこないことが多いことを利用し受信を拒否する。再送信してきたIPアドレスについてはデータベースと照合後、メール受信のやり取りに進む。

    「S25 (Selective SMTP Rejection)」
    SMTP接続時に送信元IPアドレスをDNSサーバに照会し、得られたIPアドレスにスパム発信元に特有の文字列が含まれていたりドメイン名を確認できなかったりした場合に接続を拒否する。

    「25番ポートブロック (Outbound Port25 Blocking)」
    TCP/IPによる通信では、各サーバにメール送信用、メール受信用など数多くのポート(窓口)があり、それぞれのポートにデータを送ることで送信あるいは受信の処理がなされるようになっている。従来、メール送信では「25番ポート」と呼ばれる、送信者の認証を必要とせずに直接インターネット上のメールサーバに送信できる窓口が利用されていた。しかし迷惑メールの発信者がこの「25番ポート」を利用することから、各ISPでは同ポートを閉鎖し、認証機能付きの別のポート(587番ポート)を使用し、迷惑メールの発信に対抗している。(悪意のないユーザーが、利用プロバイダーの外にあるメールサーバを使ってメール送信をしようとする場合もブロックされるため、ポート変更の設定が必要になる)

Webメール

WebメールとはWebブラウザで利用できるeメールシステムです。Webブラウザを利用できる環境であればどこからでもメールソフトなしにメールの送受信ができ、無料で利用できるサービスも提供され、そのユーザーは急速に増えています。

Webメールの仕組みは、受信メールサーバへアクセスして認証し受信メールを取得するプログラム(図2の4, 5)をWebサーバ上で実行、その結果をWebブラウザ上に表示するというものです。

おさらい

インターネットの主要機能ともいえるeメールシステムでは、各種のサーバが重要な役割を果たしていることが分かりました。覚えておきたいポイントは、

  1. メールソフトによって作成されたデータは、SMTPと呼ばれるプロトコルに従って送信側SMTPサーバ、インターネット回線、受信側SMTPサーバへ送られていく。
  2. 宛先メールアドレスは、送信側SMTPサーバに送られてからDNSサーバの検索・照会により対応する受信側SMTPサーバのIPアドレスに付け替えられる。
  3. 本来、eメールシステムは英数字、数字、そして記号(ASCIIコード文字)以外は送信できない設計になっている。その機能を拡張し、多国の文字、画像や動画、音声データなどバイナリーデータを送信可能にしているのがMIMEと呼ばれる規格である。
  4. eメールシステムは便利でスピーディー、安価ゆえに迷惑メールの急増という課題を抱えている。
  5. SMTP、POP3とメールサーバの連携によるeメールシステムをベースに、Webブラウザを組み合わせることでWebメールなどが登場。メールシステムは進化している。

次回はeメールと同様、インターネットでもっともよく使われ、インターネットの急速な普及の要因ともなったWeb機能について紹介します。

「インターネット講座」に関するアンケートを実施しております。ご協力お願い致します。

アンケート