SMTP(Simple Mail Transfer Protocol)は、電子メールの送信に使用されるプロトコルです。
SMTPはインターネットの基盤として重要な役割を持っており、電子メールの信頼性やセキュリティを確保するための仕組みを提供しています。
本記事では、SMTPの概要や仕組みについて詳しく解説し、電子メールの送信プロセスを噛み砕いて理解しています。
SMTPについて理解を深めることで、電子メールの運用やセキュリティに関する知識を高められます。ぜひ最後までご覧ください。
SMTPとは?
![](https://www.ite-ll.com/wp-content/uploads/2024/03/ITELL-explanation-of-amp-functionality-1-1-1024x538.jpg)
それではさっそく SMTP について解説していきます。
SMTPの概要
書き方 | SMTP |
読み方 | エスエムティーピー |
英語名 | Simple Mail Transfer Protocol |
SMTPとは…
Simple Mail Transfer Protocol(シンプル メール トランスファー プロトコル)の略。
インターネットなどのTCP/IPネットワークで標準的に用いられる、電子メール(eメール)を伝送するためのプロトコルの1つ。電子メールの送信について、メールソフト(クライアント)からメールサーバへのメッセージの送信依頼や、メールサーバ間の転送について要求や応答のデータ形式、伝送手順などを定めている。
上記の解説だと分からない方向けにさらに噛み砕いて解説していきます。
SMTP は電子メール(eメール)を送る方法が定められた手順書(マニュアル)のようなものを指します。
また、SMTPを使ったメール送信操作動作をSMTPと呼ぶこともあります。
メールソフト(クライアント)から自社メールサーバへ、自社メールサーバから送信先メールサーバへメールを転送する手法や操作を SMTP と呼ぶと覚えておきましょう。
なお、SMTP はあくまで電子メール(eメール)を送信するためのプロトコルのため、受信には、POP3(Post Office Protocol 3)やIMAP(Internet Message Access Protocol)という別のプロトコルを用いることになります。
そのため、「SMTP」と「POP3 / IMAP」は電子メール(eメール)の送受信にセットで必要と覚えると良いでしょう。
受信プロトコルである POP3 と IMAP の解説は下記ページにて解説しています。
気になる方は併せてご覧ください。
SMTPの特徴
SMTP を使用したメール送信にはサーバ間のデータ転送が必要となるため、インターネット接続が必須となります。
メールソフトで作成された送信用メールデータを自社メールサーバへ転送、その後、ドメイン情報をもとにDNSを経由して送信先メールサーバへ転送します。
また、SMTP には、メール添付ファイルの送付やTLSの使用、その他の機能などを拡張した「拡張SMTP(ESMTP)」が存在しており、現在提供されているメールサービスやメールソフトの多くは拡張SMTP(ESMTP)を使用しています。
SMTPの歴史
![](https://www.ite-ll.com/wp-content/uploads/2024/03/ITELL-about-it-passport-thorough-explanation-image-4-1024x538.jpg)
SMTPはIETFにおいて標準化されたメール転送のためのプロトコルである。
(引用:Simple Mail Transfer Protocol-Wikipedia)
1980年9月にメール転送プロトコル(Mail Transfer Protocol)という名称のプロトコルが RFC 772 において提案され、2回の改訂を経て1982年8月に簡易メール転送プロトコル(SMTP)という名称で RFC 821/ STD0010として標準になった。
その後 2001年4月に SMTPは他のRFCの内容もあわせて改訂され、RFC 2821として提案標準(Proposed Standard)になった。
RFC 821 から約20年を経て改訂版が発行されたのは、おもにインターネットの普及にともなって様々なメール拡張機能が実装され、それらをささえる部分を整理する必要があったからである。
サーバ外からの攻撃や、IPv6のアドレスにも対応できるよう、またSPF(Sender Policy Framework、RFC 4408)、DKIM(DomainKeys Identified Mail、RFC 4871)などにも対応すべく 2008年10月に再度改訂(RFC 5321)された。
メール送受信の仕組み
![](https://www.ite-ll.com/wp-content/uploads/2024/03/ITELL-explanation-of-amp-functionality-1-2-1024x538.jpg)
前述した通り、メール送受信は送信用と受信用の2種類のプロトコルが組み合わさって行われています。
そこで、今回はメール送受信の流れの中でSMTPがどのように関わっているのかを分かりやすく解説していきます。
メール送受信の主要なプロトコル
SMTP を用いたメールの送受信には主に2種類のプロトコルが関わっています。
メール送信 | SMTP(Simple Mail Transfer Protocol) |
メール受信 | POP3(Post Office Protocol 3) IMAP(Internet Message Access Protocol) |
SMTP はクライアントを使って作成したメールデータをメールサーバに転送する役割を持っています。
POP3 / IMAP はメールサーバに届いたメールデータを閲覧する役割を持っています。
送信用と受信用に2つのプロトコルが連携して、私たちの日常のメール通信が成り立っています。
SMTPを使用したメール送受信の流れ
SMTP を使用したメール送受信の流れについて、POP3 と IMAP を用いた場合の流れに分けて2通りご紹介します。
送信:SMTP 受信:POP3の場合
![](https://www.ite-ll.com/wp-content/uploads/2024/03/ITELL-simple-overview-of-pop3-image2-1-1024x538.jpg)
- 送信サイドのクライアントにてメールデータを作成
- SMTPを使用してメールデータを送信者のメールサーバに転送
- DNSサーバを経由して送信先を特定
- SMTPを使用して送信者のメールサーバから受信者のメールサーバに転送
- POP3を使用して受信者のサーバに転送されたメールデータを参照
- POP3を使用して受信者のサーバから受信者サイドのデバイスにメールデータをダウンロード
- 受信者サイドのクライアントにてメールデータを閲覧
送信:SMTP 受信:IMAPの場合
![](https://www.ite-ll.com/wp-content/uploads/2024/04/ITELL-overview-of-imap-and-how-it-works-image2-1024x538.jpg)
- 送信サイドのクライアントにてメールデータを作成
- SMTPを使用してメールデータを送信者のメールサーバに転送
- DNSサーバを経由して送信先を特定
- SMTPを使用して送信者のメールサーバから受信者のメールサーバに転送
- IMAPを使用して受信者のサーバに転送されたメールデータを取得
- コマンドによって閲覧などの処理を実行
SMTPの具体的な動作
![](https://www.ite-ll.com/wp-content/uploads/2024/03/ITELL-about-it-passport-thorough-explanation-image-2-1024x538.jpg)
前章で SMTP を使用したメールの基本的な送受信の仕組みを解説しましたが、本章ではなかでも SMTP がどのように動作するのか、その具体的なステップやコマンドについて噛み砕いて解説しています。
メール送信のステップ
SMTPを使用したメール送信ステップは大きく下記の通りです。
- メールソフトで作成したメールデータを自社メールサーバ(SMTPサーバ)に送信する
- 自社メールサーバ(SMTPサーバ)にて受信者のメールアドレスからドメインを識別する
- DNSサーバーに問い合わせ、受信サイドのメールサーバを特定する
- 受信サイドのメールサーバにメールデータを送信する
このように、SMTP は送信サイドのメールソフト(クライアント)から受信サイドのメールサーバまでのデータ転送を管轄しています。
SMTPのコマンド一覧
SMTP の動作は、特定のコマンドを使用して制御されています。
以下は、SMTP の主なコマンドと操作内容です。
コマンド | 操作内容 |
---|---|
HELO/EHLO | クライアントからサーバへの通知 |
メールの送信者を定義 | |
RCPT | メールの受信者を定義 |
DATA | メッセージデータの送信 |
VRFY | アドレスを参照 |
EXPN | エイリアスを展開 |
QUIT | セッションを終了 |
HELP | SMTPコマンドのhelpを要求 |
NOOP | 操作なし |
RSET | セッションの状態をリセット |
SEND | ユーザ端末に送られるメッセージの送信者を定義 |
SOML | 端末に出力あるいはメール |
SAML | 端末出力とメール |
TURN | クライアントとサーバの役割の交換 |
SMTPでは、これらのコマンドを適宜使用しメールを送信しています。
SMTPのセキュリティリスクと対策
メールサーバはセキュリティ対策の観点でもさまざまな機能を備えていますが、転送に利用しているプロトコルである SMTP は、歴史が古く非常にシンプルであるがゆえ、いくつかの課題を抱えています。
本章では、SMTPのセキュリティリスクとその対策、さらにはセキュアな通信を実現するための方法について解説します。
SMTPのセキュリティリスク
SMTPの持つセキュリティリスクは大きく下記の2点です。
- ユーザー認証機能がない
- 通信が暗号化されない
ユーザー認証機能がないという状況はもともと誰でも使えるオープン性が特徴のプロトコルだったことに起因していますが、メール送信を依頼する際にアカウント名とパスワードでの認証がないため、なりすましや、迷惑メールが増加する可能性があります。
また、通信が暗号化されていないため、通信を傍受することで、メールデータから本文を閲覧できる状態になっているという点も大きなセキュリティリスクとなっています。
SMTPのセキュリティ対策
先述したようなリスクを防ぐために、以下のような暗号化対策が考えられます。
対策1:ユーザー認証の導入(SMTP認証)
SMTP認証という拡張機能を導入することで、メール送信を依頼する際にアカウント名とパスワードでの認証を求める仕様に変更できます。※SMTP認証は「Authenticated SMTP」や「SMTP-AUTH」とも呼ばれます。
通常、SMTPが通信に利用する標準ポートは25番ですが、SMTP認証を用いる場合はサブミッションポートとも呼ばれる587番ポートを利用します。
対策2:通信の暗号化(SSL/TLS)
SSL/TLSは、インターネット上での情報の暗号化と認証を提供するプロトコルです。
多くのSMTPサーバやメールソフトでは「STARTTLS」という通信の暗号化の手法を用いています。
なお、STARTTLS は、元々暗号化に対応していない SMTP や POP3・IMAP4 といったメール送受信のプロトコルの暗号化に対応している暗号化手法です。
暗号化の仕組みとしては、通常のポート番号とプロトコルで通信を開始し、双方が STARTTLS に対応可能であるかチェックします。
対応可能な場合 SSL/TLS で暗号化してから改めて通信を開始するという仕組みとなっています。
STARTTLS は、暗号化通信のための専用ポートを利用する必要がないことと、相手が暗号化に対応していない場合はそのまま通信ができるというメリットがあります。
以前は465番ポートを利用して通信を暗号化する「SMTPS(SMTP over SSL)」も使われていましたが、現在では STARTTLS が定着しており、あまり使われなくなっています。
まとめ
本記事では、メール送信プロトコル SMTP の概要や仕組み、包括するセキュリティリスクと対策を解説しました。
SNS とメールの併用によって支えられている現代社会において、情報の伝達手段であるメール送信はSMTP というメール送信プロトコルが担っています。
SMTP はメールシステムに採用されており、SMTP認証やSSL/TLSとの連携により安全なメール通信を実現しています。
情シスの担当者の方は、通信プロトコルの一部を理解することでよりセキュアな社内環境を整えることにつながるため、本記事で学んだ内容をぜひ覚えて帰ってください。