SMTP / Simple Mail Transfer Protocol
■ SMTP。Simple Mail Transfer Protocol。 簡易メール転送プロトコル。 ユーザがメールクライアントを使って メールサーバにメールを送信するときに使うプロトコル。 メールサーバ同士でメールをやり取りする場合も使用する。 RFC821に規定されており、 ポート番号はTCPの25番を使用する。 ■ SMTPの基本的なコマンド。 SMTPコマンドには、以下の5種類がある。 SMTPサーバはこのうち、 RCPT TOコマンドで記された宛先情報を参照しながら メールを転送していく。 (1) HELLO SMTPセッションの開始を要求するコマンド。 (2) MAIL FROM メールの差出人を指定するコマンド。 (3) RCPT TO メールの宛先を指定するコマンド。 (4) DATA メールヘッダと本文を一緒に送るコマンド。 (5) QUIT SMTPセッションを終了するためのコマンド。 ■ メールヘッダ メールには必ず本文の前にヘッダが付く。 ヘッダには以下のように複数のフィールドが定義されており、 宛先に関する情報も含まれている。 しかしSMTPサーバはこの宛先を参照していない。 (1) Fromフィールド メール送信者の情報 (2) Toフィールド メールの受信者の情報 (3) Ccフィールド カーボンコピー (4) Bccフィールド ブラインドカーボンコピー (5) Dateフィールド メールの送信日時 (6) Sublect メールの表題 メールヘッダには、 このほかにもRecieved、Mime-Version、Content-Typeなど、 沢山のフィールドが定義されている。 とくに重要なのはRecievedフィールドである。 Receivedフィールドには、 メールがサーバを通過する度に情報が付加されるため、 このフィールドを見れば、 メールが中継されてきた経路を知ることができる。 Receivedフィールドの中では、 情報は一番上にある物ほど新しく、 fromサブフィールドは送信側サーバ(ホスト)名を、 byサブフィールドは受信側サーバ(ホスト)名を表している。 ■ POP before SMTP。 メール受信に使うPOPを用いて、 メール送信時のセキュリティをも強化する仕様。 POP before SMTPでは、 メールクライアントは、メールの送信に先立ってPOPによる認証を受ける。 認証が成功すると、POPサーバは、 そのホスト(IPアドレス)が認証済みであるという情報を 一定時間だけ保持する。 一方でSMTPサーバは、クライアントからのアクセスを受けると、 POPサーバに確認して正規のユーザであることを確認してから、 そのIPアドレスからの電子メール送信を許可する。 こうしてメールの送信にも認証を義務付け、 スパムなどの不正メールの送信を抑えるようにする。 すでに代表的なSMTPサーバはこのPOP before SMTPに対応しており、 設定変更のみで運用開始できる。 またメールソフトについても、Outlook Express以外は概ね対応しており、 設定変更のみで利用できる。 ■ SMTP AUTH。SMTP Service Extention for Authentication。 POPを伴うことなく、 SMTP自身として送信時に認証を求める仕様。 メールクライアントは、 ユーザ名とパスワードをSMTPサーバに送って 認証を済ませてから、実際にメールを送信する。 すでに最新版のSMTPサーバはこのSMTP AUTHを実装している。 Outlook Expressも対応しているが、 認証パスワードが平文になるなどの問題点が残っている。 ■ STARTTLS。SMTP Service Extention for Secure SMTP over TLS。 SMTPサーバとメールクライアントの間で SSL(TLS)セッションを張り メール本文、または認証パスワードの暗号化を行う機能。 すでに最新版のSMTPサーバがこのSTARTTLSを実装しており、 Outlook Expressでも利用が可能である。 以上。 2004/01/16 am