電子メール
電子メール
TCP/IP上でのメッセージ送受信
TCP/IP初期から存在
メッセージ
(Message)
テキストデータ
(ASCII)を想定
→ それ以外はファイル転送
MIME拡張
バイナリデータ,複数ファイル
FAX, メール 電話・チャット 手紙, 小包 即時性相手の存在
⇒ 不必要,確認不可
受信側
⇒ 必要な場合に受信
メールアドレスのみで誰でも送信可能
メールアドレス
メールドメイン
DNS MX レコード
に記載
[email protected]
ユーザ名 メールドメイン maindomain. IN MX 10 mailhost. メールドメイン 優先順位 そのドメインのメールサーバ名 (小さい値が優先)mailhost の IP アドレスを DNS (Aレコード)で参照し通信(SMTP)
maildomainの MXレコード 複数ホストOK mailhost. IN A 123.213.132.231 mailhostの Aレコードメッセージ メッセージ スプール SMTP メールサーバ メールサーバ MTA MTA
サービスの概要
MDA MUA MUAMail User Agent
Mail User Agent Mail Transfer Agent
Mail Delivery Agent POP IMAP SMTP
メールサーバの基本構造
スプール (spool) キュー (queue) ローカルユーザ ローカルメール /var/spool/mail/ユーザ名 /var/mail/ユーザ名 mbox 形式 Maildir 形式 リモートメール リモートメールMTA (Mail Transfer Agent)
MTA /var/spool/mqueue etc. queue 確認コマンドで確認 メールサーバ OS上のディレクトリ ファイル メッセージ が格納 MTA MTA MDA MUA
メールサーバのリレー動作
バケツリレー型 直接接続型 TCP/IP ネットワーク リレー(中継) メールサーバ メールサーバ メールサーバ メールサーバ メールサーバ メールサーバ 送信元 送信元 宛先 宛先 宛先 TCP or UUCP etc. リレー: 他のサーバを発信元,他のサーバ を宛先とするメッセージの転送リレー⇒制限
組織内
MUAからのSMTP接続もリレー
MTAの役割
SMTPでメールを受信
自サーバ宛
(ローカル宛) ?
Yes ⇒
メールスプール
へ書き込み
No ⇒ 他サーバへ
メール転送
1. 転送先の決定 DNSのMXレコード 設定ファイルで転送先を決定 2. SMTPで送信SMTP
Simple Mail Transfer Protocol
電子メールのメッセージ転送手順
宛先ポート:
TCP 25
SMTPの手順
MTA → MTA
コマンド:
4文字
HELO(EHLO), MAIL, RCPT, DATA, QUIT
EXPN, VRFY
テキストデータ
(7bit ASCII)
受信側:
Reply Code、エラーメッセー
ジなどを含む応答
例:
550 mailbox not found
relay denied, mailbox full
SMTP標準的手順
1.
HELO(EHLO) 送信元MTAのホスト名
2.
MAIL FROM:[email protected]
3.
RCPT TO:[email protected]
4.
DATA
1行目
2行目
. (ピリオド=データ終端)
5.
QUIT
telnet mailhost 25 HELO 自ホスト 250 ok : : メールメッセージ(MUAまで配送) 受信MTA:Queue へ格納 転送処理:別MTA or MDAへ渡すエイリアス
メールアドレスの
別名
メールアドレス単位の配送制御
/etc/aliases
(sendmail, postfix)
実際の参照は
DB形式 ⇒ newaliasesで作成
名前(@の左部) : 別名, 転送先メールアドレス ( “,” で区切って複数アドレスを記載可 ⇒ 簡易ML) “| command” でコマンドへ渡すことも可(フィルタ等) “:include: filename” ファイルから読み出すことも可 例: yoshida: 1110111, [email protected]MDA
(Mail Delivery Agent)
メール配送エージェント
メールスプール
へ配送
/var/mail/user
への書き込み
ホームディレクトリ以下へ配送するMDAも mail.local ユーザホームディレクトリ
.forward が存在 転送設定 ⇒ MTAへ転送 リモート
MUA
への送信
POP
: Post Office Protocol
SMTPサーバの中継
送信元・受信先が直接通信とは限らない
第三者が中継する場合もあり
リレー
(Relay)
旧来はデフォルトで世界中から中継してい
た
オープンリレー
SPAMや匿名メール(anonymous)
メールのデータ
DATAの次の行から書き込み
7bitデータ(ASCIIデータ)
.→..
内容は何でも良い
共通フォーマットが必要
RFC822(2822)で規定
メールデータの構造
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) こんにちは
元気ですか
ヘッダ
To
, Cc, Bcc
From
, Sender, Return-Path, Reply-To
Resent-From, Resent-To
Date
Subject
Message-ID, In-Reply-To, References
MIME
uuencode
uuencodeコマンドとuudecodeコマンド
MIME
Multipurpose Internet Mail Extension
バイナリを送る
(BASE64, quoted-printable)
画像,音声,マルチメディア,プログラム
複数データ
(マルチパート)
添付ファイル
データ情報
(content-type, charset,...)
文字コード,ファイル名,中身の情報
バイナリ・ファイルを送る
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
POP, IMAP
ローカル
MUA
MTAサーバ上
mail コマンド、スプールファイルからコピー
リモート
MUA
クライアント端末へダウンロード
Post Office Protocol (POP)
POP3 TCP 110 (pop over ssl:995)
Internet Message Access Protocol (IMAP)
POP・IMAP
MUA メッセージ保存場所
POP ⇒ クライアント端末
ダウンロード後は,スプールから消去
IMAP ⇒ IMAPサーバ
クライアント端末にはキャッシュが存在
Web メール
MUA プログラムの Web アプリケーション Gmail, Hotmail, Yahoo! Mail, etc.Saas (Software as a service), クラウド
迷惑メール対策
UBE, UCE
Unsolicited Commercial Email
Unsolicited Bulk Email
Outbound 25 blocking
Inbound 25 blocking
SPAM防止
DNSへのSPF(Sender Policy
Framework)
Sender ID
Domainkeys
まとめ
MTA, MDA, MUS
MTA
送信,受信,中継
リモート,ローカル
Protocol
SMTP, POP, IMAP
メッセージ
RFC5322, MIME
その他の補足
メール保存形式
メールスプール形式
1つのファイルに全てのメールを保存
From [email protected] Mon May 11 11:15:10 2009 Received: ...
Received: ... Received: ... From:
body...
>From [email protected] Mon May 11 11:15:10 2009 From [email protected] Mon May 11 14:11:30 2009
...