SMTPとは何か?| サーバー、ポートなど
SMTPはプロトコル、ポート、サーバー、プロバイダーといった要素が絡み合い、複雑に見えるかもしれませんが、理解するのはそれほど難しくありません。SMTPを完全に理解するために、すべてをカバーします。
シンプルメール転送プロトコルとは?
シンプルメール転送プロトコル(SMTP)は、メールサーバーがユーザー間で送信、受信、または中継するために使用されるプロトコルです。
SMTPはメールの背後にある主要な技術の一つですが、多くの人はあまり詳しく知りません。コンピュータでメールクライアントアプリケーション(Outlook、Thunderbird、Apple Mail、Windows Mailなど)を設定したことがあるなら、少なくとも一度はSMTPに遭遇したことがあるでしょう。
SMTPはどのように機能するのか?
シンプルメール転送プロトコル(SMTP)は、メールメッセージをあるサーバーから別のサーバーに送信するためのプロトコルです。SMTPは、一連のコマンドと応答を通じてメッセージを送信します。クライアントマシンがメールサーバーにSMTPコマンドを送信し、そのサーバーがメッセージを受信者に中継する責任を負います。このプロセスには通常、メールプロバイダーに応じて認証と暗号化が含まれます。認証と暗号化が成功した後、サーバーはメッセージを受信者のメールサーバーに転送し、受信者の受信トレイにメッセージを配信します。
SMTPを詳しく説明する前に、重要な用語を2つ区別しましょう:
- メールサーバーは、メールのルーティング、送信、受信を処理するコンピュータ上のソフトウェアです。これらのサーバーは、特定のオペレーティングシステム用に設計されている限り、任意のコンピュータで動作し、管理者の手動操作なしで操作を処理します。
- メールクライアントは、サーバーに接続し、ユーザーのマシン上でローカルに使用できるスタンドアロンのソフトウェアです。クライアントを使用する際、コンピュータから直接メールを送信するわけではありません。代わりに、ローカルツール(処理、フォーマットなど)を使用し、別のサーバーを通じてメールを送信し、そのサーバーがルーティングを処理します。
トランザクションは、SMTPサーバーと呼ばれるものを通じて行われることを理解することが重要です。これは、より包括的なサーバーの一部です。たとえば、専用のコンピュータをサーバーとしてのみ使用するか、マルチパーパスコンピュータでソフトウェアを実行することができます。SMTPサーバーは、そのソフトウェアの一部である可能性があります。
いずれの場合も、メールの「SMTP」部分は、いくつかの基本的なメカニズムを通じて、送受信メールを制御します。これらのメカニズムには以下が含まれます:
- SMTPサーバー: メッセージを送受信するためには、コンピュータにソフトウェアプラットフォームをインストールして実行する必要があります。このサーバーは、メールを受け入れ、送信するように設定されている必要があります。さらに、そのソフトウェアに接続するメールクライアントは、これらの設定詳細を知っている必要があります。
- SMTPサーバーの場所: 専用サーバーは、サーバーに接続するために使用されるアドレスを持つことがよくあります。たとえば、クライアントを使用してGoogleサーバーにsmtp.google.comで接続し、そのメールサーバーを使用してメールを送信することができます。
- 専用ポート接続: メールサーバーは、メールの送受信専用に、コンピュータシステム内で数値で表されるネットワーク接続である1つ以上のポートを割り当てます。通常、サーバーは平文メール用にポート25、暗号化メール用にポート587をデフォルトとします。
SMTPコマンドとは?
SMTPコマンドは、メールサーバー間の通信を制御するために使用される一連の指示です。これらは、メールをサーバー間で送信、受信、中継することを可能にするSMTP(シンプルメール転送プロトコル)の一部として使用されます。最も一般的なSMTPコマンドには、HELO、EHLO、MAIL FROM、RCPT TO、DATA、QUIT、RSETなどがあります。これらのコマンドは、メールの送信者と受信者を識別し、メッセージの内容を送信し、セッションを終了し、既存のセッションをリセットするために使用されます。詳しく見てみましょう:
- HELOまたはEHLO: SMTPがメッセージを送信する際、受信サーバーに接続すると、このコマンドを使用して自分をサーバー(つまりメールを交換できる能力がある)として識別します。送信コンピュータはHELOコマンドを提供し、受信コンピュータはIPアドレスまたはドメイン情報を含む別のHELOコマンドを返します。
- MAIL FROM: これはメッセージの送信元に関する情報を含み、メールトランザクションの開始を示します。受信コンピュータが受け入れると、MAIL FROMアドレスを受け取り、OK応答コードを送信します。
- RCPT TO: OKコードの後、送信コンピュータはこのコマンドを提供し、メッセージが意図されたメールアドレスを示します。複数の受信者がいる場合、このプロセスは複数回続行できます。
- DATA: すべての受信者が記録された後、送信コンピュータはメッセージの内容を受信サーバーに転送します。送信コンピュータは、単一のドットを含む単一の行で送信を終了し、受信コンピュータはOKコマンドで信号を送ります。その後、受信サーバーはRCPT TOコマンドからのメールアドレスにメッセージを送信します。
- QUIT: 送信コンピュータはこのコマンドを送信して送信を終了します。
これは特に1日に何百万ものメールを処理する場合、煩雑なプロセスのように見えますが、実際には各コマンドはほんの一瞬で完了します。
SMTPは情報を送信するために平文を使用すると述べました。SMTPの拡張版であるシンプルメール転送プロトコルセキュア(SMTPS)は、TCPを介して接続するのではなく、SSLまたはTLSを使用して暗号化を行います。Googleのような多くのプロバイダーは、送信者と受信者の両方がTLSを使用している限り、デフォルトでTLSを使用します。そうでない場合、メールは暗号化されずに送信されます。
SMTPはどのポートを使用しますか?
SMTPは通信に特定のポートを使用します。それがポート25です。このポートは、サーバーとメールクライアント間でメールを交換するために使用されます。また、メールサーバーから別のメールサーバーへのメールの中継にも使用されます。これにより、ネットワーク上で送信されるデータ量を調整し、データが失われたり破損したりするリスクを軽減することで、メールが正常に配信されることを保証します。
SMTPエラーコードの理解
メールが成功しなかった場合、特定の意味を持つエラーコードが返されることがあります。エラーコードは通常3桁で構成されており、それぞれの桁には異なる意味があります。最初の桁はメールが受け入れられたか拒否されたかを示します。2番目と3番目の桁はエラーの種類を識別します。
たとえば、エラーコード451でメールが拒否された場合、最初の桁(4)はメールが拒否されたことを示します。2番目と3番目の桁(51)は、サーバーがメッセージを受け入れることができないためにメールが拒否されたことを示します。つまり、メールは一時的な問題のために受け入れられません。
他の一般的なエラーコードには、サーバーエラーのためにメールが送信できなかったことを示す500と503、受信者のメールボックスが存在しないことを示す550、メールがスパムとして識別されたことを示す554があります。
SMTPエンベロープとは?
SMTPエンベロープは、メールメッセージと共に送信される情報のセットであり、受信者には見えません。送信者、受信者、メールが送信者から受信者に移動する経路などの詳細が含まれており、メールプログラムがメールを適切に処理できるようにします。また、詐欺や悪用が疑われる場合にメールを追跡するのにも使用されます。
SMTP、POP、IMAPの違いは何ですか?
SMTPは世界中で使用されている唯一のプロトコルではありません。ほとんどのメールサーバーとプロバイダーは、異なる種類の使用を処理するために追加のプロトコルも実装します。最も一般的なプロトコルの2つは、ポストオフィスプロトコル(POP)とインターネットメッセージアクセスプロトコル(IMAP)です。
これら3つのプロトコルの違いは何ですか?
- プッシュ対プル: SMTPは、サーバー間でのメールの送信、受信、ルーティングを処理できます。これは、SMTPが世界中のメールユーザーを接続する基盤となるプロトコルであることを意味します。しかし、POPとIMAPは、あるコンピュータから別のコンピュータへのメールの「プル」を処理します。たとえば、サーバーに接続されたクライアントは、そのサーバーのSMTPコンポーネントを使用してメールを送受信できますが、POP(現在はPOP3)またはIMAPを使用してローカルマシンにメールをプルして保存し、読み取ります。
- ダウンロード対同期: クライアントをサーバーにPOPで接続すると、クライアントがサーバーに単一の接続を確立し、利用可能なすべてのメールをダウンロードし、ユーザーのマシンにローカルに保存するシステムが設定されます。IMAPも同様ですが、IMAPはクラウドサービスとして機能するため、サーバー設定を複数のデバイス間で同期することをサポートします。ウェブインターフェース、モバイルクライアント、コンピュータクライアントなど、どのデバイスで変更を行っても、複数のデバイス間で同期されます。これは、今日最も一般的に使用されているメールプロトコルです。
SMTPは安全ですか?
SMTPは本質的に安全ではありません。データを暗号化して保護するための形式を使用していないためです。つまり、プロトコルを介して送信されるデータは、第三者によって傍受され、見られる可能性があります。SMTPを介して安全な接続を提供するには、暗号化や認証などの追加の対策を使用する必要があります。
SMTPインジェクション攻撃とは?
SMTPインジェクション攻撃は、メールサーバーに対する不正な攻撃であり、サーバーを操作して悪意のあるメールを送信したり、機密情報にアクセスしたりする試みです。攻撃者は、2つのメールサーバー間のシンプルメール転送プロトコル(SMTP)会話に悪意のあるコードを注入し、会話を制御してサーバーを操作できるようにします。これにより、認証資格情報にアクセスしたり、悪意のあるメールを送信したり、サーバーの制限された領域にアクセスしたりすることができます。
SSL/TLSでSMTPを安全にする方法
SMTPを安全にするには、TLS(トランスポート層セキュリティ)を使用できます。TLSは、SMTPを介して送信されるメールを暗号化することでメールを保護する暗号化プロトコルです。また、SMTP内でオプションとして提供されるSTARTTLSを使用することで、サーバーが安全でない接続を安全なものにアップグレードすることができます。さらに、ポート25の代わりにポート465など、セキュアなSMTP通信のための別のポートを使用することもできます。これにより、すべてのメールがSMTPサーバーを介して安全に送信されることが保証されます。
SMTPサーバーを使用する利点と課題は何ですか?
どの技術もそうですが、SMTPを使用する(または独自のサーバーを展開する)ことは、重要な利点を提供しながらも課題を提示することがあります。
独自のサーバーを使用または展開することの主な利点と課題のいくつかは次のとおりです:
- ボリューム制限なし: 独自のサーバーを所有し、運用することで、ISPがメールボリュームに課す制約から解放されます。マーケティングやその他のサービスを運営している場合、メールボリュームをより適切に管理するのに役立ちます。
- 監視とプライバシー: 継続的な監視、セキュリティ、プライバシーを制御できます。データは安全であり、メールリストはプライベートに保たれ、コンプライアンスとセキュリティ対策に関してより多くの発言権を持つことができます。
- コスト: サーバーのセットアップ、展開、管理、監視、メンテナンスは、特に設定や技術的な問題を管理するためにスタッフを雇う必要がある場合、コストがかかることがあります。特にコンプライアンス要件やセキュリティニーズがあり、広範な技術的専門知識が必要な場合は特にそうです。
- ローカルで脆弱: メールのバックアップクラウドサービスがない限り、サーバーはシャットダウンに対して脆弱です。停電、ハッキング、その他のネットワーク問題が発生すると、メールシステム全体が停止する可能性があります。
独自のSMTPサーバーを運用するか、サードパーティのメールサービスを使用するか
今日では、独自のメールを管理する組織はほとんどありません。これは、サードパーティのサーバーがオンプレミスソリューションに比べて大きな利点を持っているためです:
- よりコスト効率が高い: 管理されたサーバーは、一般的に、オンプレミスソリューションよりも購入および使用がはるかに安価です。これは、ベンダーが複数のベンダーにコストを分散し、専用のメールサーバーの管理を安価にするためです。さらに、メールを管理するためだけに専用のITチームにお金を使うことがないため、コストを削減する大きな方法です。
- セキュリティ、プライバシー、コンプライアンス: 直感に反するように思えるかもしれませんが、サードパーティにメールサービスを管理させることで、より良いセキュリティ慣行が促進されます。これらのパーティは、特定の優先事項(つまり、メールおよび関連技術)に集中し、投資しているため、労働力や専門知識の不足の問題はありません。
- 信頼性: サードパーティプロバイダーでは、システムの停止は大きな問題ではありません。はい、まだ発生しますが、同じ頻度ではなく、同じ影響もありません。システムの停止が発生しても、ほとんどのプロバイダーはバックアップと冗長性を備えており、サービスを継続して稼働させます。
サードパーティのメールプロバイダーを使用する唯一の大きな欠点は、サーバーと実装を制御できないことです。つまり、社内で持っているのと同じ設定、バックアップ、コンプライアンス慣行を持っていない可能性があります。
自分のメールがSMTPSを使用しているかどうかを知る方法
メールアカウントまたは使用しているメールプログラムのセキュリティ設定を確認できます。メールがSMTPSを使用している場合、セキュリティ設定に表示されます。また、送信したメールのヘッダーにこの情報が表示されることもあります。メールがSMTPSを使用しているかどうか不明な場合は、メールプロバイダーまたはシステム管理者に相談してください。
拡張SMTP(ESMTP)とは?
拡張SMTP(ESMTP)は、元のシンプルメール転送プロトコル(SMTP)の改良版です。SMTPプロトコルの拡張であり、インターネットユーザーとメールサーバー間でのメールの転送を容易にするために使用されます。ESMTPの目的は、SMTPに含まれるコマンドの数を増やし、認証やメッセージサイズの拡張など、より広範なメール機能に対応することです。
ESMTPは、認証のサポートを導入することでセキュリティを向上させます。メッセージの送信者を識別し、送信されたメッセージが意図された送信元からのものであることを確認できます。ESMTPを使用すると、送信者の認証に失敗した場合、メールサーバーはメッセージを拒否できます。
ESMTPによるメッセージサイズのサポートの拡大により、大きなメッセージ本文や添付ファイルをサーバーがクラッシュすることなく転送できます。これにより、メールサーバーの負担が軽減され、メッセージが転送中に失われる可能性が減少します。
ESMTPは、配信失敗の可能性を減らすことでメールの信頼性を向上させるのにも役立ちます。メッセージが最初に送信されなかった場合、サーバーはユーザーがメッセージを再送信することなく再送信を試みることができます。
SMTPについてもっと知りたいですか?
SMTPはメール通信の基盤です。SMTPの基盤をもとに、エンジニアはリッチテキストやHTMLメール、モバイル、ウェブ、デスクトップユーザー向けのクロスプラットフォームメールアクセス、さらにはメールにメディアを安全に埋め込む機能を開発しました。
KiteworksがSMTPをどのように活用しているかについてもっと知りたい場合は、カスタムデモをスケジュールしてください。