シンプルメール転送プロトコル(SMTP)は、ビジネスネットワークとインターネット上で電子メールメッセージを送信するための標準的な通信プロトコルです。 SMTPはもともとは1980年代初めに開発されたもので、世界で最も普及しているプロトコルの1つです。
電子メールソフトウェアは、一般的にSMTPを使用してメールを送信し、メールを受信するためにPOP3(Post Office Protocol 3)プロトコルまたはIMAP(Internet Message Access Protocol)プロトコルを使用します。 その年齢にもかかわらず、SMTPへの本当の代替手段は、主流の使用には存在しません。
SMTPのしくみ
最新の電子メールクライアントプログラムはすべてSMTPをサポートしています。 電子メールクライアントで管理されているSMTP設定には、SMTP サーバーの IPアドレス (電子メールを受信するPOPサーバーまたはIMAPサーバーのアドレス)が含まれます。 Webベースのクライアントは、構成内にSMTPサーバーのアドレスを埋め込みますが、PCクライアントは、ユーザーが独自のサーバーを指定できるようにするSMTP設定を提供します。
物理的なSMTPサーバーは、電子メールトラフィックのサービス専用ですが、多くの場合、少なくともPOP3と組み合わせられることがあります 。
SMTPはTCP / IPの上で動作し、標準的な通信にはTCP ポート番号 25を使用します。 SMTPを改善し、インターネット上の迷惑メール対策に役立てるため、標準化団体はプロトコルの特定の側面をサポートするためにTCPポート587を設計しました。 GmailなどのいくつかのWebメールサービスでは、SMTP用の非公式TCPポート465が使用されます。
SMTPコマンド
SMTP標準は、一連のコマンドを定義します。情報の要求時にメールクライアントがメールサーバーに送信する特定の種類のメッセージの名前です。 最も一般的に使用されるコマンドは次のとおりです。
- HELOとEHLO - クライアントとサーバーの間で新しいプロトコルセッションを開始するコマンド。 EHLOコマンドは、サポートするオプションのSMTP拡張機能で応答するようにEHLOコマンドに要求します
- MAIL - 電子メールメッセージの送信を開始するコマンド
- RCPT - 準備中の現在のメッセージの受信者に対して1つの電子メールアドレスを提供するコマンド
- DATA - 電子メールメッセージの送信の開始を示すコマンド。 このコマンドは、メッセージの一部を含む一連の1つ以上の後続メッセージを開始します。 シーケンスの最後のメッセージは、電子メールの終わりを示すために空白(終了文字としてピリオド(。)のみを含む)です。
- RSET - メールの送信中(MAILコマンドの発行後)に、SMTP接続のいずれかの端でエラーが発生した場合に接続をリセットすることができます
- NOOP - セッションのもう一方の端の応答性をチェックするための一種のpingとして設計された空の( "no operation")メッセージ
- QUIT - プロトコルセッションを終了する
これらのコマンドの受信者は、成功または失敗のコード番号で応答します。
SMTPに関する問題
SMTPには、組み込みのセキュリティ機能がありません。 インターネットスパマーは、過去に大量の迷惑メールを生成し、それらをオープンSMTPサーバー経由で配信することで、過去にSNMPを悪用することができました。 スパムに対する保護は長年にわたって改善されてきましたが、絶対に安全ではありません。 さらに、SMTPは、スパマーが(MAILコマンドによって)偽の "From:"電子メールアドレスを設定することを妨げません。