SMTPとはSimple Mail Transfer Protocolの略で、メールを送信するために利用する通信プロトコルです。

このページでは、SMTP (Simple Mail Transfer Protocol) とは何か?SMTPはどのような仕組みで動いている?どんや役割を担っている?という疑問に対して1からわかりやすく解説します。
そもそも通信プロトコルって何?という方でもしっかり理解できるよう、必要となる周辺知識も一緒に理解できるように丁寧に説明します。
ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です。またネットワークエンジニアでなくてもITに関する仕事をしている方であれば知っておいて損はない知識です。是非最後までご覧ください。
SMTPとは?わかりやすく
冒頭でも説明した通り、SMTPとはSimple Mail Transfer Protocolの略で、メールを送信するために利用する通信プロトコルです。

OSI参照モデルで言うと第7層:アプリケーション層で動作するプロトコルです。
我々は毎日メールを送受信していますが、その裏で必ず動作しているのがこのSMTPです。SMTPというプロトコルがなければメールを送受信することはできません。
プロトコルとはコンピュータとコンピュータが通信を行う際に決められた約束事・決まりのこと。製造されたメーカーも国も違うコンピュータ同士が、お互いに適切に通信を行うためには「守るべき共通のルール」が必要。
その「守るべき共通のルール」として定義されたのが通信プロトコルです。

例えば、普段私たちがお互い話をすることができているのも「利用する言語」があらかじめプロトコルとして決まっているからとも言えます。

通信プロトコルについて更に詳しく知りたい方は以下の記事をご覧ください。
では、SMTPは具体的にどのようにメール送受信を行っているのでしょうか?

次の章では、SMTPが何者か?を具体的にイメージできるように、SMTPを利用したメール送信の仕組みを1からわかりやすく図解していきます。
SMTPの仕組み
SMTP (Simple Mail Transfer Protocol) を利用したメール送信の流れは以下の通り。

1つ1つ順を追って解説します。ザックリ言うと、以下の4ステップでメールの送受信が行われます。

SMTPが利用されるのはステップ①と②です。
つまり、相手のメールサーバへメールを届けるところまでが役割で、その後はSMTPと対をなすプロトコルであるPOPが動作して受信者にメールを配信します。
郵便配達で例えると、「ステップ①:自宅から最寄りへの郵便局」「ステップ②:最寄りの郵便局から配達先の最寄りの郵便局」までの配送を行うのがSMTPの役割と言えます。


我々が普段送っているメールは相手のコンピュータに直接届けられているわけではなく、メールサーバを経由してメールが届けられているというのが1つのポイント。その際に、メールサーバへのメール転送の役割を担っているのがSMTPであると理解しましょう!

なぜ、わざわざメールサーバを間に設置する必要があるの?という疑問については、本ページの最後の章で解説します。まずここでは、SMTP基本知識の理解に努めましょう。
SMTPをさらに詳しく
ネットワークエンジニアを目指す方向けにSMTPの仕組みを技術的な観点から詳しく解説します。
以下は、メーラーとメールサーバ間でやり取りされる通信の順序をわかりやすく図解したものになります。

SMTPでは始めにTCPのポート番号25を利用してTCPコネクション(SMTPセッション)を確立します。

各種試験では、「TCPポート番号25 = SMTP」 が出題されるため基本知識として押さえておきましょう。
TCPによるコネクションの確立が完了した後は、SMTPコマンドという特別なコマンドを発行しながら、メーラーとメールサーバがデータ転送に関する制御&メール転送を行う仕組みです。
SMTPコマンドを送ると、サーバ側からはSMTP応答コードが返答され、対話型の処理を行うのがSMTPの特徴の1つです。
TCP (Transmission Control Protocol) とは、OSI参照モデル第4層:トランスポート層で動作する信頼性の高い通信を担保するためのプロトコルです。
別名伝送制御プロトコルとも呼ばれ、その名の通り「伝送/通信」を「制御」することが目的のプロトコルです。

TCPについて合わせて学習したい方は以下の記事をご覧ください。

図ではメーラーとメールサーバ間の通信を図時していますが、これはメールサーバとメールサーバ間の通信にも当てはまります。
大事なのはメール送受信の仕組みの全体像を把握することと、メールサーバ間における通信の仕組み・順序を把握することです。

SMTPコマンド
SMTPコマンドは上記で説明した通り、送るデータの種類や通信の開始通知を行うなど様々な役割があります。

以下に代表的なSMTPコマンドを記載します。ネットワークスペシャリスト試験ではSMTPコマンドに関する出題もなされるため、一通り頭に入れておきましょう。
コマンド | 説明 |
---|---|
HELO / EHLO | メールサーバに対する挨拶/通信開始の合図 |
送信元メールアドレス "FROM:<送信元メールアドレス>" をメールサーバに通知 | |
RCPT | 宛先メールアドレス "TO:<宛先メールアドレス>" をメールサーバに通知 |
DATA | メール本文をメールサーバに転送する |
VRFY | アドレスを参照する |
QUIT | メールサーバとの接続を終了する |
RSET | セッションの状態をリセットする(メールサーバとの接続を中断・中止する) |
HELP | SMTPコマンドのヘルプを要求する |
上記のSMTPコマンドを定められた順序でメールサーバに発行することで一連のメール送信手順が完了。後続ではPOPによって宛先メールサーバ→受信者へのメール転送がなされるのがメール送受信の仕組みです。

MAILコマンドやRCPTコマンドなどはネットワークスペシャリスト試験等でもよく出題される知識ですので頭に入れておきましょう!
SMTP応答コード
SMTPコマンドに対する応答がSMTP応答コードです。

ざっくりいうと、200番台が処理の成功を表し、400番台が一時的なエラー(サービスダウンなど)を、500番台が永続的なエラー(コマンドの不正など)を表します。
SMTP応答コード | 意味 | 備考 |
---|---|---|
211 | システムの状態やシステムヘルプの応答 | HELPコマンドの応答 |
214 | ヘルプメッセージ (コマンドの使用方法ついての情報) | HELPコマンドの応答 |
220 | 準備完了 | 接続後の応答 |
221 | SMTP通信の終了 | QUITコマンドの応答 |
250 | 処理の成功 | SMTPコマンド全般に対する応答 |
251 | 受信者が存在しないため転送処理を行う | RCPT/VRFYコマンドの応答 |
354 | メール本文の入力を開始する | DATAコマンドの応答 |
421 | サービス利用不可 | SMTPコマンド全般に対する応答 |
450 | メールボックス利用不可 | RCPT/DATAコマンドの応答 |
451 | 処理中にエラーが発生 | MAIL/RCPT/DATAコマンドの応答 |
452 | システム容量が不足している | MAIL/RCPT/DATAコマンドの応答 |
500 | 文法エラー/コマンドが不正 | SMTPコマンド全般に対する応答 |
501 | 文法エラー(パラメータが不正) | SMTPコマンド全般に対する応答 |
502 | コマンド未実装 | EHLO/VRFY/EXPN/HELPに対する応答 |
503 | コマンドの順序が不正 | MAIL/RCPT/DATAコマンドに対する応答 |
504 | コマンドパラメータ未実装 | EHLO/HELO/VRFY/EXPN/HELPコマンド に対する応答 |
550 | メールボックス利用不可 | SMTPコマンド全般に対する応答 |
補足:SMTPの歴史(初期の電子メール転送)

最後にSMTPに関する補足―。初期の電子メール配送について解説しておきます。
現在の電子メールは上記で解説した通り、送信者と受信者の間にメールサーバを設置しスムーズにメール転送を行う仕組みを採用しています。


実は、この方式が採用される前は以下のようにSMTPのみを利用して(POPを利用せずに)コンピュータ to コンピュータで直接SMTPを利用してメール転送を行っていたという歴史があります。
初期の電子メールではメールサーバの概念は存在せず、相手のコンピュータと直接TCPコネクションを確立し、そのうえでSMTPを用いてメール送信をする仕組みが用いられます。

間にメールサーバが設置する必要がなく、非常にシンプルな方式でメール転送を行っていたのですが、これには「受信者のコンピュータも常に電源ONでスタンバイしている必要がある」という大きなデメリットが存在。

相手の仕事が終わりPCの電源がオフになっているときには、メールを送信することができません。
そこで、常時電源ONの状態であるメールサーバを設置し、メールは必ずメールサーバを経由して相手に届けられる仕組みが考えられました。また、メールサーバに届けられたメールを自分のパソコンに取り込むためのプロトコル・仕組みも必要となるので、このときにPOPというプロトコルも登場するのです。
なぜ、メールサーバなんて必要なの?なぜSMTPとPOPの2つが必要なの?という疑問は、上記SMTPの歴史を踏まえるとその答えがよく分かるかと思います。

SMTPの仕組みだけを頭に入れるのではなく、過去の歴史までさかのぼって学習することでSMTPやメール送受信の仕組みをより本質的に理解することができるようになります。
ネットワークエンジニアとして
コンピュータとコンピュータはどのように通信をしているのか?インターネットはどのような仕組みで構成されているのか?

ネットワークの基礎を1から学習したい方(=ネットワークエンジニアを目指す方)は、以下の書籍が非常におすすめです!
システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。
正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。
システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。