260 likes | 408 Views
メールサーバとメールの 配送の 仕組み. 神戸大学理学部地球惑星科学科 4 年 河合佑太 ( 地球および惑星大気科学研究室 ) 、 坂本大樹 ( 宇宙物理学研究室 ). 目次. 0 . メール送受信の 大まかな流れ 1 . MTA , MDA , MUA 2 . メールの送受信とプロトコル SMTP POP IMAP. メール送受信の大まかな流れ. メール 送受信 の 大まかな流れ. 送信者がメールソフトを使ってメールをメールサーバに送る 宛先アドレスを 管理する メールサーバへメールを転送する
E N D
メールサーバとメールの配送の仕組み 神戸大学理学部地球惑星科学科 4年 河合佑太(地球および惑星大気科学研究室)、坂本大樹(宇宙物理学研究室)
目次 0 . メール送受信の大まかな流れ 1 . MTA, MDA , MUA 2 . メールの送受信とプロトコル • SMTP • POP • IMAP
メール送受信の大まかな流れ • 送信者がメールソフトを使ってメールをメールサーバに送る • 宛先アドレスを管理するメールサーバへメールを転送する • 受信者は自分のメールサーバに受信メールの有無を問い合わせる • 受信メールが有れば、そのメールを受信 する http://linuxexpert.ne.jp/modules/pukiwiki/46.html
MUA とは MUA ( Mail User Agent ) • ユーザーがメールを扱うためのプログラム • メールの閲覧、作成 • メールの送受信 ■Thunderbird , Outlook Express など * 手紙を送る場合で考えると 手紙を書いたり、受け取った手紙を管理したりするほか、 書いた手紙を郵便局のポストに投函したり、郵便局から 手紙を取ってくる役割
MTA , MDA とは MTA ( Mail Transfer Agent ) • メール転送経路の決定するプログラム ■sendmail , qmailなど MDA( Mail Delivery Agent ) • リモートMDA • 他のメールサーバへのメールの配送するプログラム • ローカルMDA • メールをメールボックスに格納するプログラム * 手紙を送る場合で考えると 郵便局に相当し、手紙を郵便局間で郵送し、私書箱に振り 分けるような役割
プロトコルとは • 通信をする上で必要になる約束事をまとめたもの ・メールの送受信に関係するのは SMTP , POP , IMAP ■ 人の場合 ■ コンピュータの場合 日本語 プロトコル
SMTP とは SMTP ( Simple Mail Transfer Protocol ) • MUA から MTA へのメッセージの送信や、MTA 間でのメッセージの転送で使用されるプロトコル • メールの送信に必要な情報、およびメール本文をどのような手順で送信するかを決めている
SMTP 通信でやり取りされるメールの構造 • SMTP エンベロープ • MTA がメールを転送するときに必要となる宛先, および送信元の情報 • メール本体 • ヘッダ : 送信元、宛先、送信日時などの情報 • エンベロープの From/To と異なっていても良い • 本文 : メール本文 エンベロープ メール本体
SMTP 通信の様子1 • クライアントからメールサーバへメールを送信する際の SMTP 通信 • クライアントの「コマンド」とメールサーバからの「レスポンス」で通信が行われる • 通信内容の様子 (送信先サーバに接続) 220 mail.hoge.jpESMTPHELO hoge.com 250 mail.hoge.jpMAIL From:(送信元)250 okRCPT To: (宛先) 250 okDATA 354 go ahead(メール本分) .250 ok QUIT 221 mail.hoge.jp 送信元が打ったコマンド 送信先サーバからのレスポンス
SMTP通信の様子2 • 通信内容の様子を詳しく見てみる (送信先サーバに接続) 220 HELO hoge.com 250 MAIL From:(送信元)250RCPT To: (宛先) 250 DATA 354 (メール本分) .250 QUIT 221 送信元が打ったコマンド 送信先サーバからのレスポンス 接続を確認 -> 送信元アドレス指定 -> 宛先アドレス指定 -> メール本文の開始 -> 本文の終了は 「.」 -> これらの数値(SMTP レスポンスコード)にはそれぞれ意味がある. 200~300 番台はエラーなしを基本的には意味する. 処理の終了->
SMTP におけるメールの送受信 • MUA -> MTA • エンベロープの情報やメール本体をコマンドとレスポンスを通してメールサーバへと SMTP 通信する. • 実際コマンドやレスポンスによって転送処理を行う処理はメールソフトが行ってくれる • MTA -> MTA • 基本的には MUA -> MTA と同じである • メールの受信者が自己のサーバ内にある場合は, ローカルMDA によってメールボックスへと格納される (リモートMDA と MTA はセットになったものが一般的であるが, ローカル MDA と MTA は別のソフトウエアである場合が多い)
POP とは POP(Post Office Protocol) • インターネット上で電子メールを保存しているサーバからメールを受信するためのプロトコル • メールサーバが受信したメールは, ヘッダーと本文全てクライアントに転送される. • メールが手元に送られれば, オフラインでも再度メールを確認できる. • メールサーバ上に普通メールは残さない(残すこともできる). • 複数のPCでメールを確認したい時に不便 • パスワードを平文で送るために盗聴される危険性がある. • APOP ではパスワードを暗号化する. (近頃は SSL による通信の暗号化を推奨)
POP によるメールの受信 • クライアントの「コマンド」とメールサーバからの「レスポンス」で通信が行われる • コマンドとレスポンスは 3 段階 • 認証 • ユーザ名とパスワードで認証 • トランザクション • 受信メールの情報やメールの転送 • アップデート
IMAP とは IMAP(Internet Message Access Protocol) • メールサーバ上のメールにアクセスし操作するためのプロトコル • POP とは異なり, メールはサーバ上のメールボックスで管理される. • タイトルや発信者を見て手元にメールを受信するかを決められる. • 複数のPC でメールを扱う際にメールの未読状態やフォルダの管理を一元的に行える. • ローカルに保存さえすればオフラインでもメールを確認できる.
まとめ • メール送受信に関するプログラム • MUA : ユーザがメールの作成や送受信などを行うためのプログラム • MTA : メールを受信し配送経路を決めるためのプログラム • MDA : メールを配送するためのプログラム • メール送受信に関するプロトコル • SMTP : メール送信に関わるプロトコル • POP, IMAP : メール受信に関わるプロトコル • IMAP はメールサーバ上でメールを一元管理
補足 . SMTPレスポンス一覧その1 • 211 ・・・ システムのステータス , システムヘルプ応答 • 214 ・・・ ヘルプメッセージ , コマンド使用方法 • 220 ・・・ パラメータに指定されるドメイン名のサーバを準備 • 221 ・・・ コネクションのクローズ ( QUIT への応答 ) • 250 ・・・ リクエストされたコマンドの終了 • 251 ・・・宛先として指定されたアドレスがローカルに存在しないことを示 す • 252 ・・・VRFY コマンドでユーザーが確認できないことを示す • ユーザーがローカルに存在しない • メールの送信は可能である • 354 ・・・ メールデータの入力を促す • 最後は <CR> <LF> <CR> <LF> で終了すること
補足 . SMTPレスポンス一覧その2 • 412 ・・・ ホストのメールサービスが起動していないことを示す • TCP コネクションを切断 • メール転送中のサーバのシャットダウン時もこのレスポンス • 450 ・・・ メールボックスがビジーであるため、リクエストされたコマンドが実 行されない • 451 ・・・ ローカルエラーのため、指定コマンドが実行されない • 452 ・・・ リクエストされたコマンドは実行されない • 500 ・・・ コマンドの文法エラー • 501 ・・・ 指定コマンドのパラメータエラー
補足 . POPでのコマンド&レスポンスその1 コマンド一覧 • Authentication : クライアントの確認 • USER ・・・ ユーザー名 • PASS ・・・ パスワード • APOP ・・・ USER と PASS の代わりに用いるユーザーの認証のためのコマンド • Transaction : メッセージに対する操作 • STAT ・・・ 受信メール数とそのサイズの表示要求 • LIST ・・・ 受信メールの一覧と各メールのサイズの表示要求 • RETR ・・・ 指定した受信メールの転送要求
補足 . POPでのコマンド&レスポンスその2 コマンド一覧 • Update • QUIT ・・・ 接続を切断して終了 ※ DERE で指定したメールがあれば消去 レスポンス • + OK 状態表示 ・・・ 肯定反応 • - ERR 状態表示 ・・・ 否定反応
補足. エンベロープとヘッダーの関係 図はSMTP配送の仕組みとsendmail より(http://linuxexpert.ne.jp/modules/pukiwiki/index.php?%5B%5BMailServer%2FSMTP%C7%DB%C1%F7%A4%CE%BB%C5%C1%C8%A4%DF%A4%C8sendmail%5D%5D)
参考文献 • 2009 年度 ITPASS セミナー勉強会資料 「 メールサーバとメール配送の仕組み 」 • 清水條太郎 , 黒田美紀 https://itpass.scitec.kobe-u.ac.jp/seminar/lecture/fy2009/091002/pub/ • Linuxexpert - SMTP配送の仕組みとsendmail-MailServer/SMTP配送の仕組みとsendmail-PukiWiki http://linuxexpert.ne.jp/modules/pukiwiki/46.html • メールを受け取る仕組みはどうなっていますか??|電子メールの秘密 http://ascii.jp/elem/000/000/439/439105/
参考文献 • ネットワークの基本がまるごとわかる本 発行人 福岡俊弘 , 編集人 土屋信明 , 発行所 株式会社アスキー