第7回ネットワークプログラミング 中村 修.

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

インターネットサーバ と メール配送の仕組み 情報実験 第 13 回 2006/01/27 Last Modified: 2006/01/27M. Tsuji Original: 2004/01/30K. Komatsu.
インターネットサーバ と メール配送の仕組み 情報実験 第 13 回 2005/01/28 Last Modified: 2005/01/28K.Michimasa Original: 2004/01/30K. Komatsu.
電子メールとグループウェア 情報A 第8回授業 Copyright(C)2010 Tsutomu Ohara All rights reserved.
Outlook メール文字化けの原因と対策 Exchange Server 環境編. 目次はじめに文字化けのよくある原因と回避策 1. A:半角英数字、ヨーロッパ言語などが混在した 文字化け B : 送信済みメールの宛先や CC の文字化け 2. 返信、転送時の、ユーザー名や件名の文字化け 3. 日本語が半角英数字に文字化け.
情報の科学的 な理解( 3 ) 情報科教育法 9 回目 2005/6/11 太田 剛. 目次 1. ネットワーク ( 続き ) 2. アプリケーションとフリーソフト 3. 課題 A( フォートポリオ )
情報基礎A 情報科学研究科 徳山 豪.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
経済学のための情報処理 はじめに.
第1回.
SSHのセキュリティ技術 SSH2 IPSec PKI TLS/ SSL
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
目次 メール配送の仕組み メールの構造 メール利用の際の注意 メールに関するセキュリティ.
計算機リテラシーM 第2回 メール 伊藤 高廣.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ネットワークの仕組み.
前回の課題 IPv6アドレス IP ARP ICMP NAT インターネット層 2003年12月4日 情報ネットワーク論 新村太郎.
情報科学 竹内光悦.
TCP (Transmission Control Protocol)
「コンピュータと情報システム」 07章 インターネットとセキュリティ
Netscape Communicator Eudora Microsoft Word
第2章 第3節 コミュニケーションにおけるネットワークの活用 情報Cプレゼン用資料(座学24) 担当 早苗雅史
インターネット メールサーバ DNSサーバ WWWサーバ ファイアウォール/プロキシサーバ クライアント.
一歩進んだインターネットの利用 ~Firefox と qwikWeb~
HTTPプロトコルとJSP (1) データベース論 第3回.
神戸大学 理学部 地球惑星科学科 4 年 坂廼邉 翼 (地球および惑星大気科学研究室)
神戸大学理学部地球惑星科学科 4 年 河合佑太(地球および惑星大気科学研究室)、 坂本大樹(宇 宙物理学研究室)
高等学校 情報A (1)情報を活用するための工夫と情報機器 イ 情報伝達の工夫 いろいろな情報伝達の方法
第2章 第3節 コミュニケーションにおけるネットワークの活用 情報Cプレゼン用資料(座学24) 担当 早苗雅史
メールシステム メールシステムの変更 通信プロトコルの変更 ローカルメーラー設定変更 DEEPMail セキュリティ強化
トランスポート層.
HTTPプロトコル J2EE I 第7回 /
経済学のための情報処理 ホームページの作成.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
初年次セミナー 第2回 文字の出力.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
メールの仕組み チーム 二風堂々.
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
2004年4月26日(月) 2004年5月10日(月) 情報コミュニケーションIII A 第3回 プロトコル(HTTP、SMTP演習)
情報処理基礎 2006年 5月 18日.
メールの利用1 Webメールの利用方法.
管理画面操作マニュアル <サイト管理(1)> 基本設定 第9版 改訂 株式会社アクア 1.
情報コミュニケーション入門b 第10回 Web入門(1)
情報コミュニケーション入門b 第10回 Web入門(1)
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
ネットワークプログラミング 中村 修.
ネットワークアプリケーションと セキュリティ
第11回ネットワークプログラミング 中村 修.
情報の科学的 な理解(2) 情報科教育法 8回目 2005/6/4 太田 剛.
ソケットプログラム(TCP,UDP) EasyChat開発
ソケットプログラム(TCP,UDP) EasyChat開発2
インターネットにおける真に プライベートなネットワークの構築
情報コミュニケーション入門e 第11回 Part2 Web入門(1)
Webサーバとクライアント 接続要求 GET ・・ 接続状態 HTTP ・・ Webサーバ
UDPマルチキャストチャット    空川幸司.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
Netscape Communicator Eudora Microsoft Word
メールの仕組みとマナー.
最低限インターネット ネットワークにつなぎましょ!
プログラミング演習I 2003年7月2日(第11回) 木村巌.
Step.8 ファイアウォール PC 3 PC 1 PC 2 許可したアクセス のみ通過させる アクセスする ファイアウォール
ネットワークプロトコル.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
ネットワーク・プログラミング TCPサーバ.
SMTPプロトコル 2001年8月7日 龍 浩志.
TCP/IPの通信手順 (tcpdump)
プロトコル番号 長野 英彦.
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

第7回ネットワークプログラミング 中村 修

今日のお題 講義 ---------休憩-------------------------------- SMTPプロトコル 練習1: telnetを用いてSMTPを体験しよう 練習2: smtp clientを書こう ---------休憩-------------------------------- 実習: smtp clientをかっこよくする 練習1で書いたコードを改造して、いろいろな機能を付加しよう。

SMTP (RFC821) Simple Mail Transfer Protocol 電子メールの配信に用いられるプロトコル TCP 25番ポート 送信リクエスト入力 (あて先、本文 etc) センダ レシーバ センダ レシーバ 人 SMTPサーバ (mail.sfc.keio.ac.jp) SMTPサーバ (sfc.wide.ad.jp) ファイル へ書き込み SMTPクライアント SMTP SMTP インターネット ファイルシステム SMTPクライアント(メールクライアント)は SMTPサーバ(メールサーバ)にアクセスすれば 後はサーバ間で自動的に配信してくれる 但し、運用上IPアドレスによる制限をかける場合が多い

メッセージフォーマット: RFC822 ヘッダとボディの二つの部分からなる 二つの部分の区別は「空行」 ヘッダ ボディ 例: 送信の日付(Date)、宛先(To、Cc)、件名(Subject)、送信者アドレス(From) などメッセージの属性に当たる情報を記載する部分 ボディ 本文を記載する部分 二つの部分の区別は「空行」 例: From: Masaki Minami minami@wide.ad.jp Date: Fri, 30 May 2003 02:36:27 +0900 To: masaki@minami.org Subject: Alphabet Only Cc: np-staff@minami.org X-Mailer: MyMailClient v0.01

SMTPの書式 コマンド<スペース>引数<改行> 例:HELO sfc.keio.ac.jp 但し:<改行は>CR+LF なので、コード中では \r\nで表記 例:HELO sfc.keio.ac.jp

SMTPのコマンド(1) HELO MAIL RCPT センダがレシーバにセンダ側のホスト名を伝える 例:  HELO zux000.sfc.keio.ac.jp MAIL センダが送ろうとしている送信者のメールアドレスをレシーバに伝える 例:   MAIL FROM: osamu@sfc.keio.ac.jp RCPT 受信者のメールアドレスをレシーバに伝える 1つのメッセージに対して100まで指定可能 連続する場合にはRCPT TO: foo@bar.net のような行は複数にわたって発行する 例:   RCPT TO: kaizaki@sfc.keio.ac.jp RCPT TO: irino@sfc.keio.ac.jp

SMTPのコマンド(2) DATA ヘッダ・本文の送信開始を伝える メッセージ終了は「 . 」(ピリオド)のみの行を送信することで伝えられる 「 . 」(ピリオド)で始まる行がある場合には、センダ側でもう一つ「 . 」を挿入しなければいけない 例:  DATA       To: osamu@sfc.keio.ac.jp Subject: Test ここから本文…. .

SMTPのコマンド(3) QUIT NOOP RSET SMTPコネクションを終了 何もしない 処理中のトランザクションを破棄(レシーバ側を初期化) DATAコマンドを発行する前まで有効 1回のSMTPコネクションで複数のメールを送信する際に利用

SMTPのリプライコード 3桁の数字で始まる文字列が各コマンド毎に必ず返信される 2xx 3xx 4xx、5xx メールクライアントはこのコードで次の処理を考えなければならない メールサーバは状況にあわせて最低限でもこの3桁の数字だけはメールクライアントに返さなければならない 2xx 成功した場合には「2」で始まる3桁の数字を返す 3xx DATAコマンドでメッセージ入力OKの意味(継続可を意味) 4xx、5xx 失敗またはエラーの場合

SMTP状態遷移 接続待ちうけ connect 接続確立 HELO MAIL FROM待ち受け MAIL FROM RCPT TO待ちうけ ヘッダ情報入力モード:DATA待ちうけ DATA 本文入力モード:QUIT待ちうけ QUIT 終了

練習1: SMTPを話してみよう! 挨拶 コマンドラインでメールを送る SMTPポートにアクセス 送信者の決定 受信者の決定 練習1: SMTPを話してみよう! コマンドラインでメールを送る SMTPポートにアクセス ex. telnet 133.27.4.120 25 挨拶 HELO hoge.net 送信者の決定 ex. MAIL FROM: hoge@hoge.net 受信者の決定 ex. RCPT TO: kaizaki@sfc.keio.ac.jp メールの内容を開始 ex. DATA メールの内容を終了 ex. . メールの送信 ex. QUIT

練習2: メールクライアントの雛形 コピーしてコンパイルして使って、読んでみよう。 練習2: メールクライアントの雛形 コピーしてコンパイルして使って、読んでみよう。 推奨ホスト:zux???.sfc.keio.ac.jp ソースコード中のメールアドレスを自分のメールアドレスに変更しよう コードは以下にあります /home/kaizaki/osamuNP/7/smtpclient_sample.c

練習2:ポイント connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); strnum = sizeof(sendmessage) / sizeof(char *) ; for (i = 0; i < strnum; i++){ if( write(sockfd, sendmessage[i], strlen(sendmessage[i])) < 0){ perror("write()"); continue; }

実習:SMTPクライアント作成 練習2のsmtpクライアントは最低限の機能しかありません。 改造して格好よくしましょう。 必須事項 MAIL FROM, RCPTなどコマンドラインから入力 SUBJECTなど入力できるように オプション 本文をファイルから読み込む IPv6でも使える X-MAILERフィールドなど追加 複数の宛先にメールを送るには?