メールを送るSMTPコマンドとメールのヘッダ
SMTPコマンド
セッション開始
- HELO - 接続の確立
- HELO <SP> <domain> <CRLF>
HELOにより、SMTPセッションを開始する。HELO コマンドではなく、EHLO コマンドを利用すべき。
- EHLO - 接続の確立
- EHLO <SP> <domain> <CRLF>
EHLOにより、SMTPセッションを開始する。SMTPサーバは成功の応答コードと共に利用できる拡張サービスの情報を返す。
- AUTH - SMTP認証(※)
- AUTH <SP> <認証方法等> <CRLF>
サーバとクライアントがSASL(RFC 2222)を利用して認証を行う。認証方法は、PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5 などがあるが、どれが利用できるかは、EHLO の応答に明記されている。
- STARTTLS - TLSによるセッションの暗号化(※)
- STARTTLS <CRLF>
以降の通信がTLSによって暗号化されるようになる。
メールトランザクション開始
- MAIL - メールを送る
- MAIL <SP> FROM:<reverse-path> <CRLF>
メールヘッダの送信者(From:)と異なり、配信システム(エンベロープ)上のメールの送り主を指定する。
- SEND - メッセージを送る(※)
- SEND <SP> FROM:<reverse-path> <CRLF>
MAILコマンドの代わりに利用して、メッセージをメールボックスではなくターミナルへと送る。ただ、ほとんど利用できる環境はない。
- SOML - メッセージを送る(※)
- SOML <SP> FROM:<reverse-path> <CRLF>
MAILコマンドの代わりに利用して、メッセージをターミナルもしくはメールボックスへと送る。ただ、ほとんど利用できる環境はない。
- SAML - メッセージを送る(※)
- SAML <SP> FROM:<reverse-path> <CRLF>
MAILコマンドの代わりに利用して、メッセージをターミナルとメールボックスへと送る。ただ、ほとんど利用できる環境はない。
受信者の決定
- RCPT - 受信者の指定
- RCPT <SP> TO:<forward-path> <CRLF>
メールヘッダの受信者(To:やCc:など)と異なり、配信システム(エンベロープ)上のメールの受信者を指定する。複数の相手に同じ内容を送る場合は、複数回このコマンドを利用する。あと、MAILコマンドより後に利用する。
メッセージの転送
- DATA - 本文の送信
- DATA <CRLF>
メールヘッダとボディを送信する。データの終わりは「.」のみの行を送信することで終わりとなる。
1行あたり78文字以内となるように、998文字以内でなければならない。また、7ビットASCII文字のみが送信できる。
- BDAT - バイナリデータの転送(※)
- BDAT <オクテット数> [LAST] <CRLF>
バイナリデータの転送が可能となる。ただ、ほとんど利用できる環境はない。
複数回利用できるが、最後には「LAST」オプションが必要となる。また、BDAT は DATA と一緒には利用できない。
セッション終了
- RSET - 処理の中断
- RSET <CRLF>
サーバはここまでに送られた送り元、送り先、データなどすべてを廃棄し、EHLO(HELO)直後の状態へ戻る。
- QUIT - 処理の終了
- QUIT <CRLF>
メールセッションを終了する。コネクションを閉じる。
その他
- VRFY - 受信者の確認(※)
- VRFY <SP> <string> <CRLF>
メールアドレスが存在するかどうかを確認する。最近では、セキュリティ上の理由によりこのコマンドを利用できないようになっている。
- EXPN - メーリングリストの会員アドレスの要求(※)
- EXPN <SP> <string> <CRLF>
メーリングリストのメンバーリストを表示する。最近では、セキュリティ上の理由によりこのコマンドを利用できないようになっている。
- HELP - ヘルプメッセージの要求(※)
- HELP [<SP> <string>] <CRLF>
- NOOP - ダミーコマンド
- NOOP <CRLF>
- TURN - クライアントとサーバの役割の逆転(※)
- TURN <CRLF>
- ETRN - クライアントとサーバの役割の逆転(※)
- ETRN <CRLF>
- ATRN - 認証されたTURN(※)
- ATRN <CRLF>
主なメールヘッダ
- From
- 差出人アドレス
- Sender
- 差出人アドレスが不明確な場合に差出人を明示
- To
- 宛先アドレス
- Cc
- カーボンコピー
- Reply-To
- 返信先アドレス
- Message-Id
- 5年間固有のメッセージID
- Subject
- タイトル(件名)
- Return-Path
- エラー返信先アドレス
- Date
- 差出時間
- Received
- 配送経路
- In-Reply-To
- どのメールに返信したかを示す
- References
- どのメールに返信したかを示す
- Precedence
- 配送優先度
- X-Mailer
- メールを作成したMUA名
最終更新時間:2008年11月14日 02時38分00秒 指摘や意見などあればSandBoxのBBSへ。