ネットワークプログラミング (3回目) 05A1302 円田 優輝
進捗状況 電子メールクライアントの実現 (指定されたアドレスのポートに接続し、標準入出力をするプログラムを使用したSMTPとPOP3を利用したメールのやり取り)
電子メールの仕組み 電子メールのメッセージはヘッダと本文で構成されている。 ヘッダ部分 を表示 Return-Path、Delivered-To メールの送信元、配信先のアドレス Received メールの送信経路 Message-ID 電子メールを区別するためのID番号 Content-Type、Content-Transfer-Encoding メール本体の記述形式、エンコード方法 X-Priority、X-MAILER メールの優先度、送信元が使用しているメールソフト名
SMTPとPOP3 SMTP(Simple Mail Transfer Protocol)は、インターネットやイントラネットで電子メールを送信するためのプロトコル。サーバ間でメールのやり取りをしたり、クライアントがサーバにメールを送信する際に用いられる 。 POP3(Post Office Protocol)は、インターネットやイントラネット上で、電子メールを保存しているサーバからメールを受信するためのプロトコルである。 電子メールでのやり取りは、SMTPとPOP3がセットで利用される。
SMTPとPOP3による通信例
SMTP >java mail ドメイン名またはIPアドレス 25 220 接続先のサーバ名 SMTP Radish 3.0.0-b038; Fri, 1 Aug 2008 13:11:04 +0900 helo ドメイン名またはIPアドレス 250 接続先のサーバ名 Helo [ドメイン名またはIPアドレス], Pleased to meet you. mail from:送信側のメールアドレス 250 送信側のメールアドレス... Sender ok rcpt to:受信側のメールアドレス 250 受信側のメールアドレス... Recipient ok data 354 Enter mail,end with "." on a line by ltself メール送信テスト 送信完了 . 250 OK quit 221 closing connection >
SMTPのコマンド例 コマンドの形式 説明 HELO<空白><ドメイン名><改行> 接続の確立 MAIL<空白>FROM<返信先><改行> メール発信者の指定 RCPT<空白>TO:<メール受信者><改行> メール受信者の指定 DATA<改行> メールの送信 RSET<改行> メールの送信処理の中断 HELP[<空白><文字列>] <改行> ヘルプ情報を要求する QUIT<改行> 処理の終了
SMTPの応答コード例 コード 意味 211 システムステータスまたはシステムヘルプ 214 ヘルプメッセージ 220 サービス準備完了 221 接続を閉じる 250 要求された処理は実行可能、完了 251 メールの転送処理 354 メールの入力の開始 421 サービスは利用不能、接続を閉じる 451 処理中にエラー発生。要求された処理は失敗 452 記憶装置の空き容量が不十分なため、要求された処理は実行不能 500 コマンドの構文エラー 501 パラメータや引数の構文エラー 502 コマンドが実装されていない 503 コマンドの順序エラー 504 コマンドパラメータや引数が実装されていない 550 メールボックスが利用できないため、要求された処理は実行不能 551 受信者が存在しない 554 処理失敗
POP3 > >java mail ドメイン名またはIPアドレス 110 +OK POP3 Proxy Server user ユーザ名入力 +OK Password required for tester. pass パスワード入力 +OK tester has 2 message (698 octets). list +OK 2 message (698 octets) 1 353 2 345 . retr 1 +OK 353 octets Return-Path:送信側のメールアドレス Received: from ([ドメイン名またはIPアドレス]) by サーバ名with SMTP id メッセージID for <受信側のメールアドレス>; Fri, 1 Aug 2008 12:30:40+0900 Message-ID: <メッセージID> From: <送信側のメールアドレス> To: <t受信側のメールアドレス> Date: Fri, 1 Aug 2008 12:30:40 +0900 X-UIDL: メール送信テスト 送信完了 quit +OK Pop Server at サーバ名 signing off. >
POP3のコマンド例 コマンド 説明 LIST メール数や各メールに関する情報を要求する RETR メール番号を引数とすることで該当するメールを取り出す DELE メール番号を引数とすることで該当するメールを削除する QUIT POP3セッションの終了
今後の予定 メールクライアントの実現
参考文献 参考書 基礎からわかるTCP/IP Javaネットワークプログラミング 小高和宏 著 参考サイト 小高和宏 著 参考サイト IT用語辞典 e-Words:http://e-words.jp/