ネットワークプログラミング (3回目)

ネットワークプログラミング
(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/