Simple Mail Transfer Protocol
SMTP はメールサーバ間の転送だけでなく、電子メールクライアントからメールサーバにメールを送信するときにも使われる。この2つを元々は区別していなかったがスパムなどを防ぐために現在では配送(transfer)と提出(submission)として分けて考え、メール配送の通信ではポート番号25をそのまま使うが、メール提出ではポート番号587で認証を必須とし暗号化する場合が多い。ポート番号25に接続しようとしても、ほとんどのインターネットサービスプロバイダがブロックしている。またポート番号587やTLSで暗号化した場合のポート番号465をSubmissionポートという。
SMTPは本来テキストベースのプロトコルであり、全ての要求/応答メッセージやメールデータが7ビットASCIIでなければならないという制限があったが、英語以外の言語やバイナリファイルを扱う需要があった。そのため、電子メールにMIMEという規格がつくられ、SMTP自体にも8ビットで伝送する拡張が標準化された。
宛先が複数あるときなどに毎回応答を待ってから次のコマンドを送信するのは時間がかかるため、連続してコマンドを送信するための拡張。
450 Requested mail action not taken: mailbox unavailable (RCPT, DATAコマンドの応答)
451 Requested action aborted: local error in processing (MAIL, RCPT, DATAコマンドの応答)
452 Requested action not taken: insufficient system storage (MAIL, RCPT, DATAコマンドの応答)
455 Server unable to accommodate parameters (MAIL, RCPTコマンドの応答)
500 Syntax error, command unrecognized (全てのコマンドの応答)
501 Syntax error in parameters or arguments (全てのコマンドの応答)
502 Command not implemented (EHLO, VRFY, EXPN, HELPコマンドの応答)
503 Bad sequence of commands (MAIL, RCPT, DATAコマンドの応答)
504 Command parameter not implemented (EHLO, HELO, VRFY, EXPN, HELPコマンドの応答)
550 Requested action not taken: mailbox unavailable (EHLO, HELO, MAIL, RCPT, DATA, VRFY, EXPNコマンドの応答)