第1回 ネットワークとは

1
電子メール
計算機ネットワーク
2
電子メール



TCP/IP上でのメッセージ送受信
TCP/IP初期から存在
即時性
メッセージ (Message)
電話・チャット

テキストデータ(ASCII)を想定
→ それ以外はファイル転送
FAX, メール
相手の存在 ⇒ 不必要,確認不可
受信側 ⇒ 必要な場合に受信
メールアドレスのみで誰でも送信可能

MIME拡張

バイナリデータ,複数ファイル
手紙, 小包
3
メールアドレス
[email protected]
ユーザ名

メールドメイン
メールドメイン

DNS MX レコードに記載
maildomainの maindomain.
MXレコード
メールドメイン
複数ホストOK
IN MX 10 mailhost.
優先順位 そのドメインのメールサーバ名
(小さい値が優先)
mailhost の IP アドレスを DNS (Aレコード)で参照し通信(SMTP)
mailhostの
Aレコード
mailhost.
IN A 123.213.132.231
4
サービスの概要
メッセージ
スプール
メールサーバ
メールサーバ
MDA
SMTP
メッセージ
SMTP MTA
Mail Transfer Agent
MUA
Mail User Agent
MTA
Mail
Delivery
Agent
POP
IMAP
MUA
Mail User Agent
5
メールサーバの基本構造
MTA (Mail Transfer Agent)
MTA リモートメール
MTA
リモートメール
MTA
メールサーバ
MUA
ローカルユーザ
ローカルメール
MDA
キュー
(queue)
/var/spool/mqueue etc.
queue 確認コマンドで確認
スプール
(spool)
OS上のディレクトリ
/var/spool/mail/ユーザ名
/var/mail/ユーザ名
mbox 形式
ファイル
Maildir 形式
メッセージ
が格納
6
メールサーバのリレー動作
TCP or UUCP etc.
バケツリレー型
メールサーバ
メールサーバ
メールサーバ
送信元
直接接続型
リレー(中継)
宛先
メールサーバ
送信元
TCP/IP
ネットワーク
リレー:
他のサーバを発信元,他のサーバ
を宛先とするメッセージの転送
リレー⇒制限
メールサーバ
宛先
メールサーバ
宛先
組織内MUAからのSMTP接続もリレー
7
MTAの役割

SMTPでメールを受信

自サーバ宛(ローカル宛) ?


Yes ⇒ メールスプール へ書き込み
No ⇒ 他サーバへ メール転送
1.
2.

転送先の決定

DNSのMXレコード

設定ファイルで転送先を決定
SMTPで送信
主なMTA : sendmail, qmail, postfix
8
SMTP



Simple Mail Transfer Protocol
電子メールのメッセージ転送手順
宛先ポート:TCP 25
RFC821 (1982) ⇒ RFC 5321 (2008)
9
SMTPの手順

MTA → MTA
コマンド:4文字

HELO(EHLO), MAIL, RCPT, DATA, QUIT
 EXPN, VRFY
テキストデータ (7bit ASCII)



受信側:Reply Code、エラーメッセー
ジなどを含む応答

例:


550 mailbox not found
relay denied, mailbox full
10
SMTP標準的手順
1.
2.
3.
4.
HELO(EHLO) 送信元MTAのホスト名
MAIL FROM:[email protected]
RCPT TO:[email protected]
DATA



5.
1行目
2行目
メールメッセージ(MUAまで配送)
. (ピリオド=データ終端) telnet mailhost 25
QUIT
受信MTA:Queue へ格納
転送処理:別MTA or MDAへ渡す
HELO 自ホスト
250 ok
:
:
11
エイリアス



メールアドレスの別名
メールアドレス単位の配送制御
/etc/aliases (sendmail, postfix)

実際の参照はDB形式 ⇒ newaliasesで作成
名前(@の左部) :
別名, 転送先メールアドレス
( “,” で区切って複数アドレスを記載可 ⇒ 簡易ML)
“| command” でコマンドへ渡すことも可(フィルタ等)
“:include: filename” ファイルから読み出すことも可
例:
yoshida: 1110111, [email protected]
nomi: a-san@doko, b-san@soko, [email protected]
12
MDA (Mail Delivery Agent)

メール配送エージェント

メールスプールへ配送

/var/mail/user への書き込み



ユーザホームディレクトリ


ホームディレクトリ以下へ配送するMDAも
mail.local
.forward が存在 転送設定 ⇒ MTAへ転送
リモートMUAへの送信


POP : Post Office Protocol
IMAP: Internet Message Access Protocol
13
SMTPサーバの中継


送信元・受信先が直接通信とは限らない
第三者が中継する場合もあり


リレー(Relay)
旧来はデフォルトで世界中から中継してい
た


オープンリレー
SPAMや匿名メール(anonymous)
14
メールのデータ




DATAの次の行から書き込み
7bitデータ(ASCIIデータ)
.→..
内容は何でも良い


共通フォーマットが必要
RFC822(2822)で規定
15
メールデータの構造


RFC-5322 (RFC-822⇒2822から改定)
ヘッダと本文(body)

ヘッダ名: 値(フィールド)



From, Cc, To, Received
空行
本文
Received: from …. by …. with SMTP for who
To: [email protected]
From: [email protected]
Subject: Good Morning
Date: Tue, 17 May 2011 08:25:44 +0900 (JST)
空行
こんにちは
元気ですか
16
ヘッダ







To, Cc, Bcc
From, Sender, Return-Path, Reply-To
Resent-From, Resent-To
Date
Subject
Message-ID, In-Reply-To, References
Received, Delivered-To
17
MIME
バイナリ・ファイルを送る

uuencode


uuencodeコマンドとuudecodeコマンド
MIME


Multipurpose Internet Mail Extension
バイナリを送る (BASE64, quoted-printable)


複数データ(マルチパート)


画像,音声,マルチメディア,プログラム
添付ファイル
データ情報 (content-type, charset,...)

文字コード,ファイル名,中身の情報
MIME-Version: 1.0
Sender: [email protected]
Received: by 10.220.153.68 with HTTP; Thu, 24 May 2012 19:55:45 -0700 (PDT)
Date: Fri, 25 May 2012 11:55:45 +0900
Message-ID: <CABWdx2HjDvs5zY4mozLbeG15YkDBAENcm7NeS1i1uymFQVUVPw@mail.gmail.com>
Subject: Eclipse
From: Shinichi YOSHIDA <[email protected]>
To: [email protected]
Content-Type: multipart/mixed; boundary=20cf3079bfaa43fef704c0d381c9
--20cf3079bfaa43fef704c0d381c9
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
研究室の皆様
吉田です.
日食の続報です.
-高知工科大学情報学群
吉田真一
--20cf3079bfaa43fef704c0d381c9
Content-Type: image/jpeg; name="g001.jpg"
Content-Disposition: attachment; filename="g001.jpg"
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAgEASABIAAD/7RTMUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AgBIAAAAAQACOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQKAAA
18
19
20
POP, IMAP

ローカルMUA

MTAサーバ上


mail コマンド、スプールファイルからコピー
リモートMUA


クライアント端末へダウンロード
Post Office Protocol (POP)


POP3 TCP 110
(pop over ssl:995)
Internet Message Access Protocol (IMAP)

IMAP4 TCP 143
(imap over ssl:993)
21
POP・IMAP

MUA メッセージ保存場所

POP ⇒ クライアント端末


ダウンロード後は,スプールから消去
IMAP ⇒ IMAPサーバ

クライアント端末にはキャッシュが存在
Web メール
MUA プログラムの Web アプリケーション
Gmail, Hotmail, Yahoo! Mail, etc.
Saas (Software as a service), クラウド
サーバ内で内部的に POP or IMAP
22
迷惑メール対策

UBE, UCE





Unsolicited Commercial Email
Unsolicited Bulk Email
Outbound 25 blocking
Inbound 25 blocking
SPAM防止



DNSへのSPF(Sender Policy
Framework)
Sender ID
Domainkeys
23
まとめ


MTA, MDA, MUS
MTA

送信,受信,中継


Protocol


リモート,ローカル
SMTP, POP, IMAP
メッセージ

RFC5322, MIME
24
その他の補足

mbox 形式
25
メール保存形式
mbox 形式

メールスプール形式

1つのファイルに全てのメールを保存
空行
From [email protected] Mon May 11 11:15:10 2009
Received: ...
Received: ...
Received: ...
From:
空行+次行が ”From …日時“の形
⇒ メールの区切り
body...
>From [email protected] Mon May 11 11:15:10 2009
空行
From [email protected] Mon May 11 14:11:30 2009
...
26
mbox の問題点

書き出し,読み出しを同時行う場合の
安全性
⇒ ファイルロック問題
 メールロスト
 ファイル破壊
 メールの一部破損
27
mbox 形式 vs. Maildir形式

Maildir 形式




qmail で用いられるスプール形式
1メール1ファイル
ファイル名:時刻をコード化した形式
tmp, new, cur の3ディレクトリを活用
28
SMTPの拡張

送信サーバとして使う



SMTP Auth = 認証
Submission Port 587
暗号化

starttls, 465