Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How Email Really Works: Protocols, Systems, and Their Connections

2025年09月17日に「Dev.to」が公開したITニュース「How Email Really Works: Protocols, Systems, and Their Connections」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

メールは、送信にSMTP、受信にPOP3/IMAPというプロトコルを使用する。添付ファイルはMIMEで処理され、DNSが送受信サーバーの特定を助ける。TLSによる暗号化や、SPF・DKIM・DMARCによる認証・なりすまし防止といったセキュリティ技術も組み合わさり、これらの仕組みが連携してメールは相手に届く。

ITニュース解説

メールは私たちの日常的なコミュニケーションにおいて欠かせないツールであり、仕事の連絡から個人的なやり取りまで、非常に多くの情報を運んでいる。この便利さの裏側には、様々な技術やルールが複雑に連携している。システムエンジニアを目指す上で、メールがどのように動いているかを理解することは、ネットワークの基礎やアプリケーションの仕組みを学ぶ上で非常に役立つだろう。

メールは、メッセージの送り手と受け手、そしてそれらの間をつなぐ「サーバー」と、私たちが普段利用する「クライアント」という四つの主要な要素で成り立っている。クライアントとは、OutlookやGmailのウェブ版、スマートフォンのメールアプリなど、ユーザーがメールを作成したり読んだりするためのソフトウェアのことだ。メールメッセージ自体は、誰から誰へ送られたか、件名などの情報を持つ「ヘッダー」と、伝えたい内容が書かれた「本文」から構成されている。ヘッダーは、メールが正しい相手に届くための住所のような役割を果たす。

サーバーは、メールの送受信において仲介役となる重要な存在だ。メールが送られる際には、送信側のサーバーがメールを押し出し、受信側のサーバーがそれを受け取って、受信者がメールを取り出すまで保管しておく。メールシステムを構成する具体的な役割としては、メールをサーバー間で経路指定する「メール転送エージェント(MTA)」、ユーザーのメールボックスにメールを実際に配送する「メール配送エージェント(MDA)」、そしてユーザーが直接操作するクライアントである「メールユーザーエージェント(MUA)」がある。MTAにはPostfixやSendmail、MDAにはDovecotやProcmail、MUAにはThunderbirdやGmailアプリなどが代表的なソフトウェアとして挙げられる。これらの要素が協調することで、メールは送り手から受け手へと確実に届けられる。

メールを送信する際のルールを定めているのが「Simple Mail Transfer Protocol(SMTP)」である。SMTPは、私たちのメールクライアントからサーバーへ、またはサーバー間でメールを転送する役割を担っている。通常、暗号化されていない接続では25番ポートが使われるが、セキュリティのためにSSL/TLSによって暗号化された接続では465番(SSL)または587番(TLS)ポートが使われることが多い。メールを送信するボタンを押すと、クライアントはSMTPサーバーに接続し、必要に応じて認証を行い、メッセージをサーバーに送信する。サーバーはそのメッセージを受け取り、受信者のドメインへ向けて転送を始める。SMTPでは「HELO」(挨拶)、「MAIL FROM」(送信元)、「RCPT TO」(宛先)、「DATA」(本文)、「QUIT」(終了)といった特定のコマンドを使って通信が行われる。セキュリティを強化するため、接続途中で「STARTTLS」コマンドを発行することで、通信を暗号化された状態にアップグレードできる。SMTPはメールの送信に特化しており、サーバーに保存されたメールを受信者が読み取るための機能は持っていない。

サーバーに届いたメールを受信者が読み取るためのプロトコルには、「Post Office Protocol version 3(POP3)」と「Internet Message Access Protocol(IMAP)」の二種類がある。POP3は、サーバーからメールをダウンロードして自分のデバイスに保存し、サーバーからは削除することが多いという特徴がある。主に単一のデバイスでメールを管理する場合に適しており、暗号化されていない接続では110番ポート、SSLによる暗号化では995番ポートを使用する。POP3では「USER」(ユーザー名)、「PASS」(パスワード)でログインし、「LIST」でメッセージ一覧を取得、「RETR」でメッセージを取得、「DELE」でメッセージを削除するなどのコマンドがある。

一方、IMAPはメールをサーバー上に保存したまま管理し、複数のデバイス間でメールの状態(既読/未読、フォルダ構成など)を同期できる点が大きな違いだ。そのため、スマートフォン、タブレット、PCなど複数のデバイスで同じメールアドレスを利用する現代のワークフローに適している。暗号化されていない接続では143番ポート、SSLによる暗号化では993番ポートを使用する。IMAPでは「LOGIN」でログインし、「SELECT」でフォルダを選択、「FETCH」でメッセージを取得するなどのコマンドがある。現代の多くのユーザーは、データ喪失のリスクを避け、どこからでもアクセスできるIMAPを選択することが推奨される。

メールがテキストだけでなく、画像やPDFファイル、HTML形式の凝ったレイアウトなどの非テキストコンテンツを扱えるのは、「Multipurpose Internet Mail Extensions(MIME)」という仕組みのおかげだ。MIMEは、メールの「Content-Type」ヘッダーでコンテンツの種類(例:text/plain、image/jpeg)を指定したり、バイナリデータをテキスト形式に変換するエンコーディング方法(例:base64)を定義したりする。これにより、一つのメールの中に複数の異なる種類のコンテンツ(本文と添付ファイルなど)を組み合わせた「multipart」形式のメッセージを作成できるようになった。MIMEがなければ、メールは単なる文字だけのシンプルな通信手段にとどまっていただろう。

メールがインターネット上の正しいサーバーに届くためには、「Domain Name System(DNS)」が不可欠な役割を果たす。私たちがメールを送信する際、SMTPサーバーは受信者のメールアドレスのドメイン名(例:domain.com)を元に、そのドメインのメールサーバーの場所をDNSに問い合わせる。このとき参照されるのが「MXレコード(Mail Exchanger Record)」という特別なDNSレコードだ。MXレコードは、そのドメインのメールを受け付けるサーバーのホスト名と優先順位を示しており、これにより送信側のサーバーは受信側のサーバーを特定できる。他にも、メールのセキュリティ設定に利用されるSPFやDMARCのための「TXTレコード」、メールサーバーのIPアドレスを解決するための「Aレコード」や「AAAAレコード」などもDNSに登録されている。DNSがなければ、メールサーバー同士がお互いを見つけられず、メールが届くことはない。

これらのプロトコルや仕組みを実際に動かしているのが「メールサーバー」だ。メールサーバーは、PostfixのようなMTAソフトウェア、DovecotのようなIMAP/POP3サーバーソフトウェア、Eximのような統合型ソフトウェアなどを組み合わせて構築される。送信側のメールサーバー(SMTPサーバー)は、メールを受け取ると、DNSを使って受信者側のメールサーバーを特定し、そこへメールを中継する。受信側のメールサーバーは、受け取ったメールをユーザーのメールボックスに保存し、ユーザーがPOP3やIMAPを使ってクライアントからメールを取り出すのを待つ。大規模なシステムでは、MTA、MDA、IMAP/POP3サーバーをそれぞれ別のサーバーで運用することもあるが、小規模なシステムでは一つのサーバーで全ての役割をこなすこともある。

メールの安全性と信頼性を高めるために、いくつかのセキュリティ層が導入されている。まず、「TLS(Transport Layer Security)」は、メールクライアントとサーバー間、またはサーバー間の通信を暗号化し、盗聴や改ざんを防ぐ。SMTPの「STARTTLS」コマンドはその一例だ。次に、「SPF(Sender Policy Framework)」は、送信元のIPアドレスが、そのドメインからのメール送信を許可された正規のサーバーからのものであるかをDNSのTXTレコードを参照して検証する。これにより、送信元を偽装したスパムやフィッシングメールを防ぐ。さらに、「DKIM(DomainKeys Identified Mail)」は、メールに電子署名を付与し、メッセージが送信中に改ざんされていないか、そして正規の送信元から送られたものであるかを検証する。この署名は送信側の秘密鍵で作成され、受信側はDNSに公開された公開鍵で検証する。そして「DMARC(Domain-based Message Authentication, Reporting, & Conformance)」は、SPFとDKIMの検証結果に基づき、メールの認証ポリシー(認証に失敗したメールをどう扱うか、例えば隔離するか拒否するかなど)を定義し、その結果を報告する。これらの技術を組み合わせることで、メールシステム全体のセキュリティが飛躍的に向上し、フィッシングやなりすましなどの脅威からユーザーを守る役割を果たしている。

アリスがalice@example.comからボブのbob@domain.comへメールを送るまでの具体的な道のりを追ってみよう。まず、アリスが自身のメールクライアントでメールを作成し、送信ボタンを押す。クライアントはTLSで暗号化された接続を通じて、アリスのSMTPサーバーに接続し、認証を経てメッセージを送信する。アリスのSMTPサーバーは、次にボブのメールアドレスのドメイン(domain.com)に対応するMXレコードをDNSに問い合わせ、ボブのメールを受け付けるサーバーを特定する。そのサーバーに接続すると、ボブのサーバーはSPF、DKIM、DMARCなどのセキュリティチェックを行う。これらのチェックをクリアすると、MDAがメールをボブのメールボックスに保存する。最後に、ボブが自身のメールクライアントからIMAP(これもTLSで暗号化された接続)を使ってメールサーバーにアクセスし、新着メールとしてアリスからのメッセージを読み取る。もし途中で何らかの問題があれば、メールはバウンス(不達通知)として送信者に戻されることになる。メールのヘッダーには、この経路の記録が残されており、問題発生時の調査に役立つ。

このように、メールは単一の技術ではなく、SMTP、POP3、IMAP、MIME、DNS、TLS、SPF、DKIM、DMARCといった様々なプロトコルやシステムが連携し、複雑なシーケンスを経て送受信されている。これらの内部動作を理解することで、メールがどのように届くのか、なぜ届かないのか、あるいはセキュリティ上の問題がなぜ発生するのかといったことを深く理解できる。システムエンジニアにとって、こうした基礎的なネットワーク通信の知識は、より高度なシステム開発やトラブルシューティングを行う上で不可欠なものとなるだろう。

関連コンテンツ

関連IT用語