Skip to content.

kagome.lab.tkikuchi.net

Sections
Personal tools
You are here: Home » Members » tkikuchi's Home » 授業 » 情報ネットワーク論特講 » Simple Mail Transfer Protocol
Views

Simple Mail Transfer Protocol

Document Actions

SMTP

  • Simple Mail Transfer Protocol
  • 電子メールメッセージの転送
  • TCP Port 25
  • RFC2821

メールの経路

  • メールソフトで作成
  • 自ドメインのメールサーバへ
  • 相手ドメインのメールサーバへ
    • 必要に応じて中継
  • Mail コマンド、POP、IMAP などで読む

Agent

  • MUA ... Mail User Agent
  • MTA ... Mail Transfer Agent

SMTP

  • MTA <-> MTA
  • MUA -> MTA
  • MUA <- MUA は POP/IMAP

SMTP を hack

  • telnet maiserver 25
  • HELO oresama
  • MAIL From: oresama@example.com
  • RCPT To: dareka@example.co.jp
  • DATA
  • メール本文
  • .

メッセージ形式

ヘッダ

  • Received:
  • From:
  • To:
  • Cc:
  • Date:
  • Subject:

MIME

  • Multipurpose Internet Mail Extensions
  • RFC2045
  • 多目的インターネットメール拡張
  • RFC2822 body に画像など binary data を埋め込む
    • ファイル添付

MIME ヘッダ

  • MIME-Version:
  • Content-Type:
    • multipart/mixed
    • image/jpeg
    • text/plain

添付の構造

  • Content-Type: multipart/mixed; boundary="abc"
  • --abc
    Content-Type: text/plain
    ...
  • --abc
    Content-Type: image/jpeg
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="abc.jpg"
    ...
  • --abc--

Base64

  • 64進法でバイナリデータを ASCII 文字化する
  • RFC3548
  • 3 byte = 4 文字

日本語メール

  • RFC1468
  • 村井純
  • 日本語メールは ISO-2022-JP で
  • SMTP/MTA 7bit を前提にしていた

「機種依存文字」の問題

  • RFC2237
  • Microsoft, Japan
  • ISO-2022-JP-1 の導入
  • 誰も使わない(?)

Best Practice

  • JIS X 0208-1983 の範囲で使う
  • その範囲を越える場合は UTF-8 (unicode) で
  • と思うが、なかなかそうはならない、、、

MIME ヘッダ

  • Subject: 試験
  • 文字コード表
  • JIS 試=3B6E 験=3833
  • import base64
    x = "\x1b$B\x3b\x6e\x38\x33\x1b(B"
    print base64.encodestring(x)
    
  • GyRCO244MxsoQg==
  • Subject: =?ISO-2022-JP?B?GyRCO244MxsoQg==?=
    • charset=iso-2022-jp; encoding=base64

宿題

  • 次の Subject: を解読しなさい。その方法も書くこと
  • Subject: =?ISO-2022-JP?B?GyRCPUlCahsoQg==?=
  • l ... エル, 1 ... いち
Created by tkikuchi
Last modified 2006-06-01 11:27
 

Powered by Plone

This site conforms to the following standards: