神戸大学理学部地球惑星科学科 4 年 河合佑太(地球および惑星大気科学研究室)、 坂本大樹(宇 宙物理学研究室) メールサーバとメールの配送の仕組み 神戸大学理学部地球惑星科学科 4 年 河合佑太(地球および惑星大気科学研究室)、 坂本大樹(宇 宙物理学研究室)
目次 0 . メール送受信の大まかな流れ 1 . MTA , MDA , MUA 2 . メールの送受信とプロトコル SMTP POP IMAP
メール送受信の大まかな流れ
メール送受信の大まかな流れ 送信者がメールソフトを使ってメールをメールサーバに送る 宛先アドレスを管理するメールサーバへメールを転送する 受信者は自分のメールサーバに受信メールの有無を問い合わせる 受信メールが有れば、そのメールを受信 する http://linuxexpert.ne.jp/modules/pukiwiki/46.html
MUA, MTA, MDA
MUA とは MUA ( Mail User Agent ) ユーザーがメールを扱うためのプログラム メールの閲覧、作成 メールの送受信 ■ Thunderbird , Outlook Express など * 手紙を送る場合で考えると 手紙を書いたり、受け取った手紙を管理したりするほか、 書いた手紙を郵便局のポストに投函したり、郵便局から 手紙を取ってくる役割
MTA , MDA とは MTA ( Mail Transfer Agent ) MDA ( Mail Delivery Agent ) メール転送経路の決定するプログラム ■ sendmail , qmail など MDA ( Mail Delivery Agent ) リモートMDA 他のメールサーバへのメールの配送するプログラム ローカルMDA メールをメールボックスに格納するプログラム * 手紙を送る場合で考えると 郵便局に相当し、手紙を郵便局間で郵送し、私書箱に振り 分けるような役割
メールの送受信とプロトコル
プロトコルとは 通信をする上で必要になる約束事をまとめたもの ・ メールの送受信に関係するのは SMTP , POP , IMAP ■ 人の場合 ■ コンピュータの場合 日本語 プロトコル
メール送受信の流れ
SMTP とは SMTP ( Simple Mail Transfer Protocol ) MUA から MTA へのメッセージの送信や、MTA 間でのメッ セージの転送で使用されるプロトコル メールの送信に必要な情報、およびメール本文をどのような手順で送信す るかを決めている
SMTP 通信でやり取りされるメールの構造 MTA がメールを転送するときに必要となる宛先, および送 信元の情報 メール本体 ヘッダ : 送信元、宛先、送信日時などの情報 エンベロープの From/To と異なっていても良い 本文 : メール本文 メール本体 エンベロープ
SMTP 通信の様子1 クライアントからメールサーバへメールを送信する際 の SMTP 通信 クライアントの「コマンド」とメールサーバからの「レスポンス」 で通信が行われる 通信内容の様子 (送信先サーバに接続) 220 mail.hoge.jp ESMTP HELO hoge.com 250 mail.hoge.jp MAIL From: (送信元) 250 ok RCPT To: (宛先) 250 ok DATA 354 go ahead (メール本分) . 250 ok QUIT 221 mail.hoge.jp 送信元が打ったコマンド 送信先サーバからのレスポンス
これらの数値(SMTP レスポンスコード)にはそれぞれ意味がある. 200~300 番台はエラーなしを基本的には意味する. 通信内容の様子を詳しく見てみる (送信先サーバに接続) 220 HELO hoge.com 250 MAIL From: (送信元) 250 RCPT To: (宛先) 250 DATA 354 (メール本分) . 250 QUIT 221 送信元が打ったコマンド 送信先サーバからのレスポンス 接続を確認 -> 送信元アドレス指定 -> 宛先アドレス指定 -> メール本文の開始 -> 本文の終了は 「. 」 -> これらの数値(SMTP レスポンスコード)にはそれぞれ意味がある. 200~300 番台はエラーなしを基本的には意味する. 処理の終了 ->
SMTP におけるメールの送受信 MUA -> MTA MTA -> MTA 実際コマンドやレスポンスによって転送処理を行う処理はメール ソフトが行ってくれる 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 + OK 状態表示 ・・・ 肯定反応 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/
参考文献 ネットワークの基本がまるごとわかる本 発行人 福岡俊弘 , 編集人 土屋信明 , 発行所 株式会社アスキー