SMTPとは?メール送信の仕組みをわかりやすく解説

目次
SMTPの仕組みを理解してメール送信の流れを学ぼう
電子メールは企業や個人を問わず日常的に利用されている重要なコミュニケーション手段です。
メールソフトやWebメールから送信ボタンを押すだけで相手へメールが届くため、普段はその仕組みを意識することは少ないでしょう。
しかし、メールが相手へ届くまでには複数のサーバが連携し、その中心でSMTP(Simple Mail Transfer Protocol)というプロトコルが動作しています。
SMTPはインターネット上でメールを送信するための標準プロトコルです。
Linuxサーバの構築やメールサーバ運用を行うインフラエンジニアにとって、SMTPの理解は欠かせない基礎知識となります。
本記事ではSMTPの役割やメール送信の流れ、SMTPサーバの仕組みについて実務目線で分かりやすく解説します。
SMTPとは
SMTP(Simple Mail Transfer Protocol)は、電子メールを送信するための通信プロトコルです。
プロトコルとは、コンピュータ同士が通信するための共通ルールのことです。
メールの送信時には、送信元のメールソフトやメールサーバから、宛先のメールサーバへメールを届ける必要があります。
その際に利用されるルールがSMTPです。
SMTPは1982年にRFC821として標準化され、その後改良を重ねながら現在も利用されています。
現在ではRFC5321がSMTPの標準仕様となっています。
SMTPの役割
SMTPの役割は非常にシンプルです。
「メールを送ること」です。
例えば以下のようなメールを送信する場合を考えてみましょう。
送信者 user@example.com 宛先 admin@test.com
メールソフトで送信ボタンを押すと、まずSMTPサーバへメールが送られます。
SMTPサーバは宛先ドメインを調べ、相手のメールサーバへメールを転送します。
この配送処理を担当しているのがSMTPです。
郵便に例えると、SMTPは郵便局や配送センターのような役割を担っています。
SMTPと受信プロトコルの違い
SMTPは送信専用のプロトコルです。
メールを受信するためには別のプロトコルが利用されます。
| プロトコル | 役割 |
|---|---|
| SMTP | メール送信 |
| POP3 | メール受信 |
| IMAP | メール受信・同期 |
SMTPだけではメールの受信はできません。
送信はSMTP、受信はPOP3またはIMAPという組み合わせで利用されます。
メール送信の流れ
メール送信時には以下のような流れで処理が行われます。
- メールソフトでメールを作成する
- SMTPサーバへ送信する
- SMTPサーバがDNSへ問い合わせる
- 宛先メールサーバを特定する
- SMTP通信を開始する
- メールを配送する
- 受信側メールサーバへ保存する
この一連の処理が数秒以内に実行されるため、私たちはすぐにメールを送信できます。
SMTP通信の全体イメージ
+----------------+
| メールソフト |
+----------------+
|
| SMTP
v
+----------------+
| SMTPサーバ |
+----------------+
|
| DNS問い合わせ
v
+----------------+
| DNSサーバ |
+----------------+
|
v
+----------------+
| 宛先メールサーバ |
+----------------+
SMTPサーバはメール配送の中心となる存在です。
送信されたメールを適切なメールサーバへ届ける役割を担っています。
SMTPサーバとは
SMTPサーバとは、SMTP通信を処理するメールサーバです。
企業のメールサーバやクラウドメールサービスにもSMTPサーバが存在しています。
SMTPサーバは単純にメールを転送するだけではありません。
次のような処理も行います。
- メール送信受付
- 宛先メールサーバの検索
- メール配送
- SMTP認証
- TLS暗号化
- 配送失敗時の再送
- スパム対策
- ログ記録
企業システムでは非常に重要な役割を担っています。
SMTPサーバが宛先を見つける仕組み
SMTPサーバはメールを配送する際、DNSを利用して宛先メールサーバを探します。
その際に利用するのがMXレコードです。
例えば次のようなDNS情報が登録されているとします。
example.com. IN MX 10 mail.example.com.
SMTPサーバはDNSへ問い合わせを行い、「mail.example.com」がメールサーバであることを確認します。
その後、そのサーバへ接続してメールを配送します。
そのためSMTPとDNSは密接に連携しています。
SMTP通信で利用される主なコマンド
SMTPはテキストベースのプロトコルです。
通信中には以下のようなコマンドが利用されます。
| コマンド | 内容 |
|---|---|
| EHLO | 接続開始 |
| MAIL FROM | 送信者指定 |
| RCPT TO | 宛先指定 |
| DATA | メール本文送信 |
| QUIT | 通信終了 |
これらのコマンドを利用してSMTPサーバ同士がメール配送を行っています。
実際のSMTP通信例
SMTP通信は以下のようなやり取りで進行します。
220 mail.example.com ESMTP
EHLO client.example.com
250 OK
MAIL FROM:
250 OK
RCPT TO:
250 OK
DATA
354 End data with .
Subject: Test Mail
Hello World
.
250 Queued
QUIT
221 ByeSMTPサーバは送信者、宛先、メール本文を受け取り、相手のメールサーバへ配送します。
SMTPで利用されるポート番号
SMTP通信では複数のポート番号が利用されています。
| ポート番号 | 用途 |
|---|---|
| 25 | メールサーバ間配送 |
| 465 | SMTP over SSL |
| 587 | メール送信用(Submission) |
現在ではメールクライアントからの送信に587番ポートが利用されることが一般的です。
これらの違いについては後続記事で詳しく解説します。
SMTPでよくあるトラブル
SMTPを運用していると様々なトラブルが発生します。
- SMTP認証エラー
- DNS設定ミス
- MXレコード未設定
- ファイアウォールによる通信遮断
- メールキュー滞留
- スパム判定による拒否
- TLS設定不備
SMTPの基本的な動作を理解しておくことで、障害発生時の切り分けが容易になります。
SMTPを学ぶメリット
SMTPを学ぶことで、メールサーバだけでなくネットワークやDNSの理解も深まります。
また、企業システムではメール通知機能が利用されることが多く、SMTPの知識はサーバ運用において非常に重要です。
特にLinux環境でPostfixを利用する場合は、SMTPの仕組みを理解していることが大きな強みになります。
まとめ
SMTPは電子メールを送信するための標準プロトコルです。
メールソフトから送信されたメールはSMTPサーバへ渡され、DNSのMXレコードを利用して相手のメールサーバへ配送されます。
SMTPサーバは配送だけでなく、認証、暗号化、スパム対策、再送制御など多くの機能を担っています。
メールサーバ運用やLinuxサーバ構築を学ぶ上でSMTPの理解は欠かせません。
まずはSMTPの基本的な仕組みを理解し、次回以降のSMTP認証やSMTPリレーなどの技術へつなげていきましょう。






