1 電 子 メール 計 算 機 ネットワーク
2 電 子 メール TCP/IP 上 でのメッセージ 送 受 信 TCP/IP 初 期 から 存 在 メッセージ (Message) テキストデータ(ASCII)を 想 定 それ 以 外 はファイル 転 送 相 手 の 存 在 不 必 要, 確 認 不 可 受 信 側 必 要 な 場 合 に 受 信 メールアドレスのみで 誰 でも 送 信 可 能 MIME 拡 張 バイナリデータ, 複 数 ファイル 即 時 性 電 話 チャット FAX, メール 手 紙, 小 包
3 メールアドレス username@mail.domain ユーザ 名 メールドメイン メールドメイン DNS MX レコードに 記 載 maildomainの maindomain. MXレコード メールドメイン IN MX 10 mailhost. 複 数 ホストOK 優 先 順 位 そのドメインのメールサーバ 名 ( 小 さい 値 が 優 先 ) mailhost の IP アドレスを DNS (Aレコード)で 参 照 し 通 信 (SMTP) mailhostの Aレコード mailhost. IN A 123.213.132.231
4 サービスの 概 要 メッセージ スプール メールサーバ SMTP メールサーバ MDA Mail Delivery Agent メッセージ SMTP MTA MTA POP IMAP MUA Mail Transfer Agent MUA Mail User Agent Mail User Agent
5 メールサーバの 基 本 構 造 MTA (Mail Transfer Agent) MTA リモートメール リモートメール MTA メールサーバ MTA MUA ローカルユーザ ローカルメール キュー (queue) /var/spool/mqueue etc. queue 確 認 コマンドで 確 認 MDA スプール (spool) /var/spool/mail/ユーザ 名 /var/mail/ユーザ 名 mbox 形 式 Maildir 形 式 OS 上 のディレクトリ ファイル メッセージ が 格 納
6 メールサーバのリレー 動 作 バケツリレー 型 TCP or UUCP etc. メールサーバ メールサーバ メールサーバ 送 信 元 直 接 接 続 型 メールサーバ 送 信 元 リレー( 中 継 ) TCP/IP ネットワーク 宛 先 メールサーバ 宛 先 リレー: 他 のサーバを 発 信 元, 他 のサーバ を 宛 先 とするメッセージの 転 送 メールサーバ 宛 先 リレー 制 限 組 織 内 MUAからのSMTP 接 続 もリレー
7 MTAの 役 割 SMTPでメールを 受 信 自 サーバ 宛 (ローカル 宛 )? Yes メールスプール へ 書 き 込 み No 他 サーバへ メール 転 送 1. 転 送 先 の 決 定 DNSのMXレコード 設 定 ファイルで 転 送 先 を 決 定 2. 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. HELO(EHLO) 送 信 元 MTAのホスト 名 2. MAIL FROM:xxx@sss.ddd 3. RCPT TO:sss@ddd.sss 4. DATA 1 行 目 2 行 目. (ピリオド=データ 終 端 ) 5. QUIT 受 信 MTA:Queue へ 格 納 転 送 処 理 : 別 MTA or MDAへ 渡 す メールメッセージ(MUAまで 配 送 ) telnet mailhost 25 HELO 自 ホスト 250 ok : :
11 エイリアス メールアドレスの 別 名 メールアドレス 単 位 の 配 送 制 御 /etc/aliases (sendmail, postfix) 実 際 の 参 照 はDB 形 式 newaliasesで 作 成 名 前 (@の 左 部 ) : 別 名, 転 送 先 メールアドレス (, で 区 切 って 複 数 アドレスを 記 載 可 簡 易 ML) command でコマンドへ 渡 すことも 可 (フィルタ 等 ) :include: filename ファイルから 読 み 出 すことも 可 例 : yoshida: 1110111, yoshida@keitai.ne.jp nomi: a-san@doko, b-san@soko, c-san@america.us
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: yoshida@aaa.bbb From: yoshida@ccc.ddd 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: yoshida.shinichi.kochi@gmail.com 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 <yoshida.shinichi@kochi-tech.ac.jp> To: yoshida.shinichi@kochi-tech.ac.jp Content-Type: multipart/mixed; boundary=20cf3079bfaa43fef704c0d381c9 18 --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
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 yoshida@example.ac.jp Mon May 11 11:15:10 2009 Received:... Received:... Received:... From: body... >From yoshida@example.ac.jp Mon May 11 11:15:10 2009 空 行 空 行 + 次 行 が From 日 時 の 形 メールの 区 切 り From atata@example.ac.jp 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