SMTPでメールを送ろう

トップ > いろいろ > SMTP

SMTPとは?

SMTP(Simple Mail Transfer Protocol)はメール送信に用いられるプロトコルです。メール受信機能はありません。RFC821、RFC1651、RFC1652、RFC1653 で定義されます。TCPポートの 25番を用います。

SMTPの例

SMTPサーバ(mail.xxx.yyy.zzz)に接続し、bbb@xxx.yyy.zzz さんから aaa@xxx.yyy.zzz さんにメール送信する際の、サーバークライアント間メッセージ例を示します。メッセージはすべて文字として送受信されます。← がサーバーから送られてくるメッセージ、→ がサーバーに送るメッセージです。

← 220 mail.xxx.yyy.zzz ESMTP
→ HELO mail.xxx.yyy.zzz      ← サーバーとのあいさつ
← 250-OK
← 250 WELCOME
→ MAIL FROM: aaa@xxx.yyy.zzz ← 発信元
← 250 OK
→ RCPT TO: bbb@xxx.yyy.zzz   ← 宛先
← 250 OK
→ DATA                       ← メールの開始
← 354 Start mail input; end with <CRLF>.<CRLF>
→ From: aaa@xxx.yyy.zzz      ← 発信元To: bbb@xxx.yyy.zzz        ← 宛先Subject: TEST              ← 件名                           ← ヘッダと本文の間には空行Hello!!Good by!!.                          ← メールの終了
← 250 OK
→ QUIT                       ← SMTPの終了
← 221 BYE

緒注意

SMTPリプライコード

SMTPリプライコードは何番台かで凡その意味があります。

コード説明
2xx正常です。
3xx追加情報を求める。
4xx致命的エラー。
5xx回復の可能性があるエラー。

各エラーコードの詳細を下記に示します。

コード説明
211システムステータスあるいはシステムヘルプの準備完了。
214ヘルプメッセージ。
220サービス準備完了。
221サービスは転送チャンネルをクローズしています。
250要求されたメール操作が受けつけられました。
251ユーザはローカルでないので、<forward-path> に転送されます。
コード説明
354メールを入力してください。メールの終わりは <CRLF>.<CRLF> です。
コード説明
421サービスは現在利用不能です。
450要求されたメール操作は受けつけられませんでした。
451要求されたアクションは中断されました。
452要求されたアクションは受けつけられませんでした。
コード説明
500文法エラー。コマンドは認識されませんでした。(コマンドの入力が長すぎるなど)
501パラメータや引数に文法エラーがあります。
502そのコマンドは実装されていません。
503コマンドの指定順序が誤っています。
504そのコマンドパラメータは実装されていません。
550要求されたアクションは受けつけられません。(メールボックスが無いとか、アクセス権が無いなど)
551ユーザが存在しません。
552要求されたメール送信が中断されました。
553要求されたアクションは受けつけられませんでした。(メールボックスの名前が不正など)
554トランザクションが失敗しました。

参考文献


Copyright (C) 2002 杜甫々
初版作成:2002年2月16日
http://www.tohoho-web.com/ex/smtp.htm