簡易メール転送プロトコル(SMTP)は、メール送信に関するネットワーキングの標準です。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
サインアップして、Cloudflareからセキュリティ関連の学習用記事をお受け取りください。
記事のリンクをコピーする
簡易メール転送プロトコル(SMTP)は、電子メール(メール)をネットワーク経由で伝送するための技術標準です。他のネットワーキングプロトコルと違い、SMTPを使えば、コンピューターとサーバーが基になるハードウェアやソフトウェアにかかわらずデータを交換できます。封筒の宛名書きに標準的な形式を用いることで郵便サービスが可能になるように、SMTPは送信者から受信者へメールが移動する方法を標準化し、メール配信の普及を可能にします。
SMTPはメール配信プロトコルであって、メール受信プロトコルとは異なります。郵便サービスでは郵便物を郵便受けに配達します。受取人は、その郵便受けから郵便物を取り出さなければなりません。同様に、SMTPはメールをメールプロバイダーのメールサーバーへ配信します。受信者がそのメールをメールサーバーから受け取って読むには、別のプロトコルが使われます。
ネットワーキングプロトコルはすべて、あらかじめ定義されたデータ交換プロセスに従っています。SMTPは、メールクライアントとメールサーバー間のデータ交換プロセスを定義しています。メールクライアントはユーザーがやりとりする相手です。ユーザーがアクセスしてメールを送信するコンピューターやWebアプリケーションがこれに当たります。メールサーバーはメールの送信、受信、転送のための専用コンピューターです。ユーザーがメールサーバーと直接やりとりすることはありません。
送信を開始する際のメールクライアントとメールサーバーのやりとりをまとめると、以下のようになります。
通常、この最初のメールサーバーは実際のメールの最終的な宛先ではありません。サーバーは、クライアントからメールを受信した後、このSMTP接続のプロセスを別のメールサーバーと繰り返すのです。その二つ目のサーバーも同じ手順を踏み、メールは最終的に、受信者のメールプロバイダーが管理するメールサーバー上にある受信者の受信トレイに届きます。
このプロセスを、郵便物が差出人から受取人へ移動するプロセスと比較してみてください。郵便配達員は手紙を差出人から受取人へ直接配達するわけではなく、いったん郵便局へ持ち帰ります。手紙はその郵便局から別の町の郵便局へ、そこからまた別の郵便局へ、さらに別の郵便局へと送られ、最終的に受取人の手元へ届けられます。同様に、メールもSMTPを使ってサーバーからサーバーへと送られ、最終的に受信者の受信トレイへ届くのです。
SMTP「エンベロープ」は、メールクライアントがメールサーバーへ送る、メールの送信元と宛先に関する一連の情報です。SMTPエンベロープはメールのヘッダーや本文とは異なり、メールの受信者には見えません。
SMTPコマンドはあらかじめ定義されたテキストベースの指示で、クライアントまたはサーバーに対し、何をすべきか、添付データをどう扱うべきかを伝えます。サーバーにデータを正しく受け取らせるためにクライアントが押せるボタンと考えてください。
HELO/EHLO
:これらのコマンドは、Helloと言ってクライアントとサーバーの間のSMTP接続を開始します。"HELO
"はこのコマンドの基本形で、"EHLO
" は特種なタイプのSMTPです。MAIL FROM
:これは、サーバーにメールの送信者が誰であるかを伝えます。たとえば、Aliceが友人のBobにメールしようとしている場合、クライアントは"MAIL FROM:<alice@example.com>"というコマンドを送るという具合です。RCPT TO
:このコマンドはメール受信者をリスト化するためのものです。複数の受信者がいる場合、クライアントはこのコマンドを複数回送ることができます。上記の例の場合、Aliceのメールクライアントは"RCPT TO:<bob@example.com>"というコマンドを送ることになります。DATA
:これはメール内容の前にきます。以下のようになります。
DATA
Date: Mon, 4 April 2022
From: Alice alice@example.com
Subject: Eggs benedict casserole
To: Bob bob@example.com
Hi Bob,
I will bring the eggs benedict casserole recipe on Friday.
-Alice
.
RSET
:このコマンドは接続をリセットするもので、SMTP接続を閉じることなく、それまでに転送された情報をすべて削除します。RSET
は、クライアントが誤った情報を送った時に用います。QUIT
:接続を終えるコマンドです。SMTPサーバーは、SMTPプロトコルを使ってメールの送受信を行えるメールサーバーをいいます。メールクライアントはメールプロバイダーのSMTPサーバーと直接接続して、メールの送信を開始します。SMTPサーバーでは、いくつかの異なるソフトウェアプログラムが実行されます。
ネットワーキングにおけるポートは、ネットワークデータが受け取られる仮想のポイントをいいます。郵便の宛先でいえばアパートの部屋番号だと考えてください。ポートは、コンピューターがネットワーキングデータを適切なアプリケーションへ振り分けるのに役立ちます。ネットワークセキュリティ対策(ファイアウォールなど)は、悪意のあるデータの送受信を防止するために不要なポートをブロックすることができます。
従来、SMTPは25番ポートだけを使っていました。現在も25番ポートは使われていますが、465番、587番、2525番も使えます。
インターネットメッセージアクセスプロトコル(IMAP)とポストオフィスプロトコル(POP)は、メールを最終的な宛先へ配信する際に使われます。メールクライアントは、チェーン上の最後のメールサーバーからメールを取得してメールをユーザーに表示しなければなりません。この際、クライアントはSMTPではなくIMAPまたはPOPを使います。
SMTPとIMAPまたはPOPの違いを理解するには、木板とロープの違いを考えてみてください。長い木板を使えば何かを押し出すことができますが、引き寄せることはできません。一方、ロープは引き寄せはできますが、押し出しはできません。同様に、SMTPはメールをメールサーバーへ「プッシュ」し、ユーザーのアプリケーションまでの残りの道のりはIMAPとPOPが「プル」します。
拡張SMTP(ESMTP)はSMTPの1バージョンで、本来の機能を拡張して、メール添付ファイルの送付やTLSの使用、その他の機能を有効にするものです。ほぼすべてのメールクライアントやメールサービスが、基本的なSMTPではなくESMTPを使っています。
ESMTPには、接続開始時にESMTPの使用を可能にする"EHLO
"("extended hello")メッセージなど、追加的なコマンドがいくつかあります。
Cloudflare Email Routingは、メールアドレスの作成・管理がシンプルになるように設計されており、追加したメールボックスを別途監視しておく必要がありません。Email Routingを使えば、ユーザーは、プライマリメールアドレスを共有したくない場合に使うカスタムメールアドレスをいくつでも作成できます。そうすれば、メールは好みのメール受信トレイにルーティングされ、プライマリメールアドレスが露出することは決してありません。
Cloudflare Email Routingは、メールのヘッダーと本文は変えずに、SMTPエンベロープを変更することによって機能します。詳しくはブログ記事をお読みください。
利用開始
メールセキュリティの基本
フィッシングとスパム