No295 メールの送受信を支える三つの仕組み
インターネットではいろいろなサービスが提供されています。
その中でもメールはごく初期から今まで使い続けられているサービスの一つです。
しかも、その送受信の仕組みは1990年代にインターネットが普及し始めた頃からほとんど変わっていません。
これだけ変化の早いインターネットの世界で30年以上も変わっていないことには驚きますが、逆に言えばそれだけシンプルで改善の余地が少ない仕組みとも言えます。
今回はそんなメールシステムの送受信の仕組みをメールサーバの視点からのぞいてみます。
メールの送受信の仕組み
メールを送信すると手元のメールソフトから先方のパソコン(PC)やスマホに直接メールを送っているように思いがちです。
ですが、実際にはメールが直接PCやスマホに送付することはできません。
かならず中継役としてのメールサーバが必要になります。
また、メールサーバは世界に一つ、というわけではなくドメイン(xxx.co.jpやxxx.com)単位でメールの送信と受信を担っています。
メールを送付する場合は、実際には次のようにメールが送付されます。
発信元(パソコンやスマホ)
↓
発信元のメールサーバ
↓
受信先のメールサーバ
↓
受信先(パソコンやスマホ)
通常、メールサーバは寡黙なサーバで表に出てくることはまずありません。
今回はそんなメールサーバの役割についてのお話です。
なお、以降で出てくる「メールソフト」はThunderbirdやGmailのアプリのことを指し、「メールサーバ」は上記の送受信をする機器のことを指します。
メールサーバの三つの役割
メールサーバの主な仕事は次の三つです。
1) メールを送ること
2) メールを受け取ること
3) 受信メールを利用者に渡すこと
何となくメールサーバの仕事というと「メールの送信」と「メールの受信」の二つだけのように思いますよね。
実際、1980年代(まだインターネットが普及していなかった時代)は「メール送信」と「メール受信」の二つだけがメールサーバの仕事でした。
メール利用者はメールサーバにログインしてメールを見ていたのです。
ですが、メールがパソコン(PC)に配信されないのは不便ですし、メールの取りこぼしにつながります。メールソフトが起動時(起動中も)にメールサーバに「新しいメールをちょうだい」と問い合わる必要があります。
これを実現するため、メールサーバは第三の仕事として「受信したメールを利用者(正確にはメールソフト)に渡す」が増えたのです。
余談
1980年代は業務でのメール利用者はプログラマやSEなどごく少数でした。
一台のコンピュータを多数で利用するのがあたり前でしたので、コンピュータには多数の端末(キーボードとディスプレイ)をつなげて使うものでした。
プログラマ達はそういったコンピュータ上で仕事をしていました。
そのコンピュータにメールサーバの役割も兼務させていました。
ですので、それほど困っていたわけではありませんでした。
メールの送信と受信
メールサーバの仕事のうち、メールの送信と受信は同じ方式を使います。
メール送信時とメールの受信時は多少動作が異なります。
メール送信時は、以下の手順を踏みます。
1) 利用者のパソコン(PC)からメールサーバにメールを送信
2) メールサーバが相手先のメールサーバを探す
3) 相手先のメールサーバにメールを送信
メール受信時は、以下の受信処理だけです。
1) 送付元のメールサーバからメールサーバにメールが送られてきます。
2) メールサーバは受信したメールを保管します。
送信と受信が非対称となるのには理由があります。
メール送信は、利用者のPC内のメールを一度メールサーバに渡し、その後にメールサーバが送付先のメールサーバを検索した上で相手に送付するという手順が必要です。
一方、受信する時には、利用者のPCは関係ありません。
この時はメールサーバが先方から来たメールを受信して、メールサーバ内に保管するだけです。
これはメールが到着するのは何時かわからないからです。メールサーバは基本的に24時間稼動させますので、いつでもメールが受信できます。
ですが、利用者PCの24時間稼動は非現実的です。ですので、メールサーバは届いたメールを後述の「受信メールを利用者に渡す」時まで保管しておくのです。
このメール送信と受信では一種類のプロトコル(通信手順)を使います。
この方式をSMTP(Simple Mail Transfer Protocol:単純なメール転送手順)と呼びます。
1982年に制定されましたので、40年ほど前のプロトコルです。
この古さのためもあり、SMTPは基本的に性善説でメールを悪用されるケースへの対策は皆無といっていい状態です。
例えば、詐欺メールではメールの送信元をよく詐称しますが、これはSMTPがそういった悪用を想定した仕組みになっていないためです。
メールは私書箱のようなもの
前述のように、外部から届いたメールはメールサーバ内に保管されます。
この状態では利用者のパソコン(PC)ではまだメールは届いていません。
そのため、利用者がPCを起動するとメールソフトがメールサーバに「新着メールはない?」と聞きにいくのです。
この方式は郵便局(メールではなく日本郵便(株)の郵便局)の私書箱にそっくりです。
私書箱は、郵便局内に設けられるスペースです。
私書箱宛の郵便物は郵便局内で保管されます。
自宅や勤務先には配達されません。
郵便物を受け取りたければ、利用者は好きな時に郵便局に行って受け取りをします。
これがメールだと次のようになります。
外部から届いたメールはメールサーバ内に保管されます。
ですが、利用者のパソコンまで送付してくれるわけではありません。
メールを受け取りたければ、利用者は好きなタイミングでメールソフトを起動してメールサーバからメールを受信する。
そっくりですよね。
このメールサーバからメールを受信することが、前述の「受信メールを利用者に渡す」こととなります。
受信メールを利用者に渡す
受信したメールを利用者が受け取る手順には SMTPは使いません。
SMTPは「メール転送」に特化した手順ですので、受信済のメールを取得するには全く不向きなのです。
例えば、SMTPではどのメールがいつ届いたかも知れませんし、届いたメールの一覧すら取得できません。
そのため、受信メールを利用者に渡すため、専用のプロトコル(通信手順)が規定されています。
それがPOP3(ポップスリー)とIMAP4(アイマップフォー)です。
POP3は Post Office Protocol version 3の略で、「郵便局プロトコル」というマジメなのかふざけているのかよくわからないものです。
一方のIMAP4は Internet Message Access Protocol version4 の略で「インターネットのメッセージアクセスプロトコル(ほとんど日本語になってないな)」というものです。
もともとはPOPが先に開発され、IMAP4がその改善版として登場したのですが、IMAP4の構造が複雑で普及が遅れました。そのため、今もPOP3が利用されるシーンが多く結果として共存する形になっています。
いずれもメールサーバから受信したメールの内容を取得できるのですが、それぞれに特徴があります。
POP3は、受信したメールを一気に受け取り、オフラインでの閲覧に向いています。
一方、IMAP4はメールをサーバに置いたままにしやすいため、パソコンやスマホなど複数の端末でメールを閲覧するのに向いています。
筆者はIMAP4を使うことが多いですが、今時のメールサーバはPOP3とIMAP4の両方をサポートしていることが多いので、どちらをお使いいただいても問題ありません。
まとめ
インターネットでのメールはメールサーバが送受信を行います。
皆さんが利用しているパソコン(PC)のメールソフトはメールサーバとの通信を行うことで、メールの送受信を行っています。
メールの送信については、パソコンから契約しているメールサーバに通信し、そのメールサーバが実際の送付先のメールサーバにメールを送信します。
一方、メールの受信は二段階になります。
最初はメールサーバがメールを受信することで、二つ目はその受信したメールを利用者のPCに送信することです。
これはメールが届いた時に利用者PCの電源が入っているとは限らないため、24時間稼動しているメールサーバがメールを受信する仕組みとなっているためです。
メールソフトの設定画面には、送受信サーバだとかPOPサーバといった入力項目があります。
今までは、意味がわからず「登録完了のご案内」の記載通りに呪文のように入力していた方も多いことでしょう。
今回の解説でその疑問が多少なりとも解けましたら嬉しいです。
次回もお楽しみに。
(本稿は 2023年2月に作成しました)