電子メール

電子メール
•
•
•
•
グループ7
宇賀 一登
小椋 智泰
久岡 敬司
矢野川 真帆
1
電子メールの開発動機
• これまでの伝達手段の欠点
– 1対1でしか情報を伝えられない
– 情報の劣化(紙などの媒体)
欠点を補うため
複数の相手と通信ができる手段
劣化しない情報を伝えられる
2
電子メールとは
• インターネット経由でメッセージをやり取り
する手段
• メールアドレスを宛先としてメッセージをや
り取り
• 1対多の通信を行える
• データなので情報が劣化しない
3
電子メールの構成要素
• アプリケーション
– MUA(Mail User Agent)
– MTA(Mail Transfer Agent)
– MDA(Mail Delivery Agent)
• プロトコル
– SMTP(Simple Mail Transfer Protocol)
– POP(Post Office Protocol)
– IMAP(Internet Message Access Protocol)
• 非テキストのドキュメントを送信する仕組み
– MIME(Multipurpose Internet Mail Extensions)
4
MUA (Mail User Agent)
• 電子メールの作成・編集や受信したメールを見るため
のソフトウェア
• メーラやメールクライアント、メールソフトとも呼ばれる
• 一台のコンピュータで複数のMUAを使用することが可
能
• MUAで作成したメールはMTAを用いて宛先へ送信
• MUAの例
– UNIXのmailコマンド
– MicrosoftのOutlook Express
– フリーソフトのthunderbird
5
MTA(Mail Transport Agent)
• ネットワーク上にある他のメールサーバに対してメ
ールの転送を行うソフトウェア
• SMTPでメールを受信した場合はメールスプールへメ
ールを保存
• SMTPでメールを送信する場合はDNSのMXレコード
を使って転送先IPアドレスを判定
– 一台のメールサーバに一つのMTA
• MTAの例
– Sendmail
– qmail
6
– postfix
MDA(Mail Delivery Agent)
• MTAが受信側のメールスプールにメッセージ
を書き込むためのプログラム
• メールスプールに記憶されたメールはPOPに
よってMUAに取り出される
• POPを用いて受信者のMUAへメールを送信
• MDAの例
– qpopper
– Maildrop
– Dovecot
7
SMTP(Simple Mail Transfer Protocol)
• メッセージを送信するためのプロトコル
• メーラあるいはメールサーバが別のメールサ
ーバにメールを送るプロトコル
• MTA
• TCPのポート番号25番
• ソフトウェア
– sendmail、Postfix、qmailなど
8
SMTPのコマンド
コマンド
引数
説明
HELO
ドメイン名
サーバにクライアントを通知する
MAIL
自分のメール 送信者の指定
アドレス
RCPT
受信者のメー 受信者の指定
ルアドレス
DATA
なし
サーバにメッセージを送信する
QUIT
なし
セッションを終了する
9
POP(Post Official Protocol)
•
•
•
•
•
メッセージを取得するためのプロトコル
サーバから電子メールを取得するためのプロトコル
TCPのポート番号110番
ほとんどの処理をクライアント側で行う
ソフトウェア
– qpopper、Maildrop、Dovecotなど
• コマンドでPOPサーバと対話可能
10
POPのコマンド
コマンド
STAT
LIST
RETR
QUIT
引数
説明
なし
メールメッセージの数とサイズを
要求する
メッセージ番号
メールメッセージ番号とそれぞれ
のサイズを要求する
メッセージ番号
指定されたメッセージ番号のメッ
セージ全体を表示する
なし
サーバに対し、クライアントが
セッションを閉じることを通知
11
IMAP
(Internet Message Access Protocol)
•
•
•
•
メッセージを取得するためのプロトコル
POPサーバの後継として開発
ほとんどの処理をサーバ側で行う
ソフトウェア
– Courier-IMAP、Cyrus IMAP、UW IMAP Serverなど
• TCPのポート番号143番
12
メールの構成
• ヘッダと本文で構成される
• ヘッダと本文の間には1行の空白を入れ
る
ヘッダ
Return-Path: <エラーメールの送信先メールアドレス>
From: <送信者のメールアドレス>
To: <受信者のメールアドレス>
Data: <送信日>
Subject: <件名>
....
空白
本文
massage
....
13
MIME(Multipurpose Internet Mail Extensions)
• MUAで転送できるデータの種類について拡
張を行うプロトコル
• MIMEの手順
(1)ASCIIコード以外で書かれた文書や、テキスト以
外のデータを7ビットASCIIコードに変換
(2)メールのヘッダ部分でデータの文字コードやフ
ァイルのデータ型を指定
(3)MUAで変換後メールを送信し、受信者側で元
のデータに復元
14
MIMEヘッダ
MIME-Version: <MIMEのバージョン>
どのバージョンで処理されているかを表す
Content-type: <データ型>; <文字コード>
どのデータ型や文字コードで構成されているかを表す
Content-transfer-encodeing: <エンコードの方法>
エンコードに用いられた方法を表す
Content-ID: <ID>
データが一意であることを表す
Content-Description: <注釈文>
本文の内容に対する注釈
15
メールアドレスとは
• 宛先のコンピュータの住所を示す
ユーザ名 @ ドメイン名
個人を識別
国や組織を識別
例)[email protected]
• ドメイン名に対応するホスト名をDNSのMXレ
コードで定義
example.ac.jp IN MX 10 server.example.ac.jp
ドメイン名
優先順位 ホスト名
一つのドメイン名に対して、複数のホスト名を指定可
DNSによる名前解決
• MXレコードで定義されているホスト名を使って、ローカ
ルネームサーバに対応するIPアドレスの問い合わせ
を行う
• ホスト名が定義されていない場合は、ドメイン名をホス
ト名としてIPアドレスの問い合わせを行う
server.example.ac.jp
ホスト名
ドメイン名
• ホスト名に対応するIPアドレスが見つからなければ宛
先不明エラーとして処理
• ローカルネームサーバが知らないIPアドレスであった
場合には、ルートネームサーバへ問い合わせを行う
電子メールのメッセージ配信の例
送信者のPC
MUA
電子メール
サーバ
受信者のPC
インターネット
MUA
SMTP
MTA
ドメイン
メッセージ
電子メールサーバ
DNSサーバ
アドレス
名前解決
MTA
SMTP
MDA
POP/IMAP
メッセージ
ストア
18
メーリングリストの開発動機
電子メールのグループ送信
(グループ送信・・・複数の宛先をグループとし、一度に送信)
• 全メンバのアドレスが必要
• 全メンバがアドレス帳を更新する必要
メーリングリスト
• 全メンバのアドレスを把握していなくてもグループ送信可能
• アドレス帳を更新する必要がない
19
メーリングリスト(ML)とは
• 1つのメッセージを1つのアドレス(リストアドレ
ス)に送信するだけで、そのメッセージがグ
ループ内の全てのメンバに配送されるメー
ルアドレスのグループ
• メーリングリスト管理ソフトウェアにより、開
設と管理を行う
20
送信者のメール
ボックス
送信者
(2)
(1)
ローカルの受信者の
メールボックス
リストアドレス
(2)
(2)
受信者
受信者のメールボックス
受信者
受信者のメールボックス
21
デメリットと改善策
• 気軽に投稿できることによる論争等の問題
– メーリングリストのポリシーをうまく設定する
• 宛先が分からず、送信するメッセージが限定
– 用途に応じたメーリングリストの利用
22
メーリングリスト管理ソフトウェア(MLM)とは
• 登録管理処理を自動化するソフトウェア
• リストアドレスと、MLへの登録および登録削
除要求のためのアドレスを持つ
MLに登録
登録要求
登録希望者
登録管理
アドレス
MLから削除
登録削除希望者
登録削除要求
23
Majordomoとは
• ユーザがメールで簡単なリクエストを送るだ
けでヘルプ、リストの説明を入手できる
• Brent Chapman氏によりperl言語を用いて記
述された
24
その他のML管理ソフトウェア
• fml
– 深町兼一氏により作られたML管理ソフト
– 言語としてPerlが採用されているため、ほとんど
のPerlの環境で動作
• Listproc
– 投稿量が多い大規模なリストに適している
25
今回の課題
• メール環境の実装
– Postfixのインストールを行い、MTAを構築する
– Qpopperのインストールを行い、POPサーバを構
築する
– メンバー間でメールの交換を行い、問題なくメー
ルが配送されている事を確認する
26
参考文献
• [1]Alan Schwarz 著,三代川信義 監訳,田和勝 訳,「メーリングリストシステ
ム管理」,(株式会社オライリー・ジャパン 1998)
• [2]山口和紀 監修 ,中村敦司 著,「新 The UNIX Super Text 上・下 改訂増補
版」(技術評論社 2003)
• [3]Bryan Costales 著, 中村素典 監訳, 鈴木克彦 訳,「sendmail システム管
理」, (株式会社オライリー・ジャパン 1997)
• [4] David wood著 大川 佳織訳,「電子メールプロトコル」,(株式会社オラ
イリー・ジャパン 2000)
• [5] Kyle D.Dent著 菅野 良二訳,「Postfix実用ガイド」,(株式会社オライ
リー・ジャパン 2004)
• [6] 亀田久和著,「SENDMAIL」,(秀和システム 1998)
• [7] 榊正憲著,「電子メールシステムとsendmail」,(株式会社アスキー
2003)
27