初心者向け図解 SMTPとは? メール送信の流れをやさしく解説 

メール送信の流れを示す矢印図 クライアント→送信MTA→中継MTA→受信MTA→受信者 Caption:メールがどのように送られるかを一目で示す概略図 ネットワーク
メールがどのように送られるかを一目で示す概略図。

1_導入

メールは日常的に利用していますが、裏側で何が起きているかは意外と知られてないかと思います。本記事は 初心者向けに図解を使用して「SMTP(メール送信の仕組み)」をやさしく解説します。用語の前提(MUA/MTA/MXレコードなど)を丁寧に説明し、実際の送信フローを5ステップで図示します。図と短い例を追うだけで、メールがどのように送られ、どこで失敗するかが分かるようになります。

バグ太郎
バグ太郎

確かに・・・言われてみればメールってどうやって届くのか全然わかっていないかも・・・

∞-CPU
∞-CPU

メール送信全体を図で追っていけば、そこまで難しくないと思うので、ひとつひとつ見ていきましょう

2_SMTP(メール送信の仕組み)とは【基礎編】

SMTP(Simple Mail Transfer Protocol)は、メールを送信するための通信ルール(プロトコル)です。端的に言えば「 送信側のコンピュータが、相手の受信サーバにメールを渡すための約束事」になります。

メール送信の流れとして、まず自身が所有しているメール作成ソフト(例:OutlookやThunderbird)で、メールを作成し送信ボタンを押すと送信用メールサーバ(SMTPサーバ)と呼ばれる機器に接続してメールを渡します。
次にメール作成ソフトからメールを送信されたSMTPサーバは、宛先のメールアドレスにメールを届けるため、更に別のSMTPサーバにメールを転送し、最終的に宛先メールアドレスが受信できるメールサーバまでリレーをしてきます。受信者は、自身のパソコン等から、メールがたどり着いたメールサーバへアクセスしメールの内容を確認します。

送信者から受信者までのメール経路を示す全体図
送信から受信までの主要な経路と役割を示します。

このように、メールは送信者から受信者までいくつかの機器を経由して、たどり着きます。SMTPは、このメールを送信する流れの中では主に 送信(転送) を担当し、受信側でメールを保存・閲覧する仕組みPOP/IMAP)とは役割が異なります。
※POPとIMAPについては別の記事で解説します。

2-1_メール用語の整理(MUA及びMTA

先ほどから用語として出てきているメール作成ソフトとメールサーバについては、以下の単語に置き換えられたりもするので、本節で解説したいと思います。

MUAMail User Agent) 

MUAは、メールを作る・送る・読むためのアプリのことです。
メールを送信する際は、MUAのアプリ(ブラウザ)上でメール本文を編集し、宛先メールアドレスを入れ送信ボタンを押すと、送信用のメールサーバにメールを渡します。
逆に受信するときは受信用メールサーバにメールを取りに行ってMUA上の画面に表示します。
アプリではありませんが、ブラウザ上で利用するYahooメールやGmailもこのMUAに該当します。※メーラー(メールクライアントとも呼ばれます)

MTA(Mail Transfer Agent)

MTAは、メールを届けるための「郵便局」のようなソフトです。
誰かがメールを送ると、MTAは宛先メールアドレス(例:○○@example.com)の「配達先(MX)」を調べて、次のMTAへメールを渡します。 もし相手のサーバーに届かなければ、何度か再送を試みたり、最終的に届かなかったことを送り主に知らせる(バウンス)役目もします。
※例として Microsoft Exchangeなどが代表的

3_メール送信のフローを図解で丁寧に解説

本節では、先ほど示したメール送信の全体像を5つのステップに分けて解説していきます。

ステップ1から5まで順に示した詳細フロー図
ステップごとの処理を順に追える詳細図

STEP_1 ユーザーがメールを作る・送る

あなたがメールを書いて「送信」を押すと、メールを作るアプリ(MUA)が動きます。MUAは宛先(誰に送るか)や件名、本文をまとめて、決められた 送信サーバ(SMTPサーバ)」にメールを渡そうとします。

メール作成フォームの実例 To Subject 本文と送信ボタン
実際の作成画面イメージ(To/Subject/本文/送信)。

STEP2_送信サーバ(SMTPサーバ)とあいさつして送信準備

MUAは送信サーバ(SMTPサーバ)と「こんにちは」のやり取りをします(技術的には EHLO などのコマンド)。その後、誰が送るか MAIL FROM)、誰に送るか RCPT TO)、本文を送る DATA) と順番に伝えます。送信サーバは「OK」や「エラー」を数字で返して、次に進めるか教えてくれます。

EHLO MAIL FROM RCPT TO DATA の順でやり取りする図
MUAと送信サーバ間の基本コマンドの流れを示します。

STEP3_送信サーバが届け先のサーバを探す

MUAからメールを受け取った送信サーバは、宛先のメールアドレスの「@」の後ろ(例:example.com)を見て、どのサーバに届ければいいかをDNSという仕組みで調べます。DNSは「このドメインのメールはこのサーバへ」と教えてくれる住所録のようなものです。複数の候補があるときは優先順位に従って試します。

DNSでMXレコードを問い合わせて受信サーバを特定する図
送信サーバがDNSで宛先の受信サーバを調べる仕組み。

STEP4_必要なら別サーバ(中継MTA)を経由する

直接つながらない場合や会社のルールでチェックが必要な場合、送信サーバは別の中継サーバを通してメールを送ります。中継はウイルスチェックやログ記録のために使われることがあります。

送信MTAが中継サーバを経由して受信MTAへ送る図
中継サーバを挟むことでウイルスチェックやログ取得が行われます。

STEP5_受信サーバが受け取り保存し、受信者が読む

受信側のサーバ(受信MTA)はメールを受け取ると、受信者ごとのメールボックスに保存します。受信者はスマホやパソコンでPOP/IMAPという方法を使ってそのメールを取りに行き、画面で読むことができます。もし配達できなければ、送った人に「届きませんでした」という通知(バウンス)が返ります。

受信MTAがメールを保存し受信者がPOP/IMAPで取得する図
受信サーバがメールを保存し、受信者がIMAP/POPで取りに行く流れ。

4_実例紹介(SMTPコマンド)

ここでは 前節のMUAとMTAのメール送信時のやりとりについて、コマンドベースで紹介します.

(あいさつ)
MUA(メール作成ソフト): EHLO client.example.com
MTA(送信用メールサーバ): 250-server.example.com Hello

(送信元情報)
MUA(メール作成ソフト): MAIL FROM:<alice@example.com>
MTA(送信用メールサーバ): 250 OK

(宛先情報)
MUA(メール作成ソフト): RCPT TO:<bob@destination.com>
MTA(送信用メールサーバ): 250 Accepted

(データ本文)
MUA:(メール作成ソフト): DATA
MUA:(メール作成ソフト): 【メール本文~~~~~~~~】
MTA(送信用メールサーバ): 250 Message accepted for delivery

5_まとめと次回予告

SMTPは「メールを送るための約束事」で、MUA→MTA→MTA→受信MTA→受信者という流れで動きます。本記事では用語の前提、送信の5ステップ、主要プロトコルの違い、SMTPコマンドとメールヘッダの実例を図解で解説しました。次回は メールを受信するためのルール(POPやIMAP)について、解説します。

(参考)よくある質問

Q1
SMTPとは何ですか?
A1

SMTPはメールを送るためのルール(プロトコル)です。メール作成ソフト(MUA)が送信ボタンを押すと、SMTPを使って送信用サーバ(MTA)にメールを渡し、MTA同士が中継して受信側のサーバへ届けます。この記事では図解で送信の流れを5ステップに分けて説明しています。

Q2
MUAとMTAの違いは何ですか?
A2

MUA(メーラー)はメールを作る・送る・読むアプリ(例:Outlook、Gmailの画面)です。MTA(郵便局役のサーバ)はSMTPでメールを受け取り、宛先のサーバを探して他のMTAへ転送したり、配達失敗時に再送やバウンス処理を行います。役割が異なる点を図で示しています。

Q3
メールが届かないときはどうなりますか?
A3

信側のMTAや中継MTAが相手サーバに接続できない場合、何度か再送を試みます。それでも届かないと最終的に送信者へ「届きませんでした」という通知(バウンス)が返ります



コメント

タイトルとURLをコピーしました