9.5 電子メールで画像を送る
MIMEメッセージ
電子メールでは今までのような文字だけではなく,音声や画像といったデータも送ることができます.これを可能にしているのが MIME という形式です.MIME 形式でメールを送ると次のような いろいろなことができます.
- 多国語で文章を書いて送る.
- 電子メールは,もともとアメリカで発達したので,アルファベット(正確には ASCII という規格で決まっている文字)で書くようにできています.
- 日本語の文字(正確には JIS という規格で決まっている文字)を使うためには,いろいろ仕掛けが必要です.
- 例えば,Subject: のところがインターネット上で送られる際は必ず必ずアルファベットで表記される約束になっています.そこで Mew は,日本語を自動的にアルファベットに変換してから送信し,受信した方はそれをまた日本語に戻して表示するということをやっています.ですから,
は,実際に送信される時は
Subject: =?iso-2022-jp?B?GyRCJDMkcyRLJEEkTxsoQg==?=
となります.Mew などの MIME 対応のソフトを使っていれば,変換は自動的に行われるので,気にする必要はありませんが,そうでないソフトを使っている人に送ると,日本語部分は読めませんから気をつけましょう.
- 絵や音などの様々なデータを送る.
- 電子メールが生まれた頃は,コンピュータでは数字や文字しか扱えませんでし た.ですから,絵や音などのデータ(テキストに対してバイナリ (binary) と言います)もそのままでは送れません.やはりアルファベットに変換してから送ります.
- 複数のデータを一つのメールでまとめて送る.
- メールの宛先を間違えたなどして配達できなかった場合に Mail Delivery Subsystem というところからメールが送れなかったというエラーメッセージのメールを受け取ったことがあるかと思います.このメールは三つの部分に分かれていて,元のメールと,配達できなかった理由が別の部分に書かれています.このように複数の部分からなるメールをマルチパート (multi part)と言います.
- Mew でマルチパートのメールを読もうとすると,メール一覧のところにパートの一覧が現れます.
- パート間の移動は,メール間の移動と同じようにSpace キー,p,n などでできます.
● 練習問題
自分のログイン名の最後のアルファベット2文字を別の文字に変えたメールアドレス(例:t01000hf → t01000xy)にメールを送ってみましょう.メールサーバーから帰ってきたエラーメッセージのメールはどのようになっていますか.
画像などバイナリデータをメールで送る際は,本文とバイナリデータからなる MIME 形式のマルチパートメッセージを利用します.バイナリデータはあらかじめファイルに入れておくことが多いので,このようにしてバイナリデータを送ることを,「メールにファイルを添付する」とも言います.
以下に /pub/sfc/ipl/1a/exercise/photos/07.jpg にある 07.jpg という写真を送る例を示します.
1.emacs を起動しメールの本文を書きます.
To: t00999xx@sfc.keio.ac.jp Subject: photo X-Mailer: Mew version 1.93 on Emacs 20.5 / Mule 4.0 (HANANOEN) Mime-Version: 1.0 ---- 鴨池の写真を送ります。 |
2. C-c C-a または[Mew/draft]→[Prepare Attachments] を実行すると,本文の下に次のような表示が出ます.
------------------------------ attachments ------------------------------ Multipart/Mixed 1/ 1 Text/Plain(guess) CoverPage* 2 . --------0-1-2-3-4-5-6-7-8-9---------------------------------------------- |
「1 Text/Plain(guess) CoverPage*」という行が,今書いた本文のパートを表しています. 次の行の「2 .」は,2番目のパートにはまだ何も入っていないことを表しています.
3. 「2 .」の行にカーソルがあるはずです.そうでなければ,ここにカーソルを移動します.
4. l または[Mew/draft]→[Attachment commands]→[Insert a file by linking] を実行します.
5. エコーエリアに Link from: と出ますので,/pub/sfc/ipl/1a/exercise/photos/07.jpg と入力します.
6. エコーエリアに Link to (07.jpg): と出ますので, RET を押します.すると,表示が次のようになります.
------------------------------ attachments ------------------------------ Multipart/Mixed 1/ 1 Text/Plain(guess) CoverPage* B 2 Image/Jpeg 07.jpg 3 . --------0-1-2-3-4-5-6-7-8-9---------------------------------------------- |
「B 2 Image/Jpeg 07.jpg」が今,追加した写真のパートを表しています. 次の行の「3 .」は,3番目のパートには何も入っていないことを表しています.3番目以降にも,同じようにしてデータを追加していくことができます.
7. C-c RET または[Mew/draft]→[Make MIME Message] を実行します. すると,表示は次のようになります.
To: t00999xx@sfc.keio.ac.jp Subject: photo X-Mailer: Mew version 1.93 on Emacs 20.5 / Mule 4.0 (HANANOEN) Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Jun_16_14:19:35_2000_595)--" Content-Transfer-Encoding: 7bit ----Next_Part(Fri_Jun_16_14:19:35_2000_595)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit 鴨池の写真を送ります。 ----Next_Part(Fri_Jun_16_14:19:35_2000_595)-- Content-Type: Image/Jpeg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=07.jpg /9j/4AAQSkZJRgABAgEAkACQAAD/4AgTSkZYWAAQ/9j/2wBDAAcFBQYFBAcGBQYIBwcIChEL CgkJChUPEAwRGBUaGRgVGBcbHichGx0lHRcYIi4iJSgpKywrGiAvMy8qMicqKyr/2wBDAQcI CAoJChQLCxQqHBgcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq (以下略) |
これが実際に送信されるデータです. 各パートの先頭にある Content-Type: はデータの形式を, Content-Transfer-Encoding: は MIME で決められている符合化方式を示しています.メールを受け取ったコンピュータは,この情報にしたがって元のデータを復元,表示します.
8. C-c C-c [Mew/draft]→[Send Message] を実行すると,送信されます.
画像だけでなく,テキストファイルや HTML のソースファイルなど,どんなファイルでも同じようにして送ることができます.
注意最近はメールに添付する形でコンピュータウィルスが広まっています.→ネットワークセキュリティ
送り手が気付かずに送ってきたウィルスファイルなのか,それともちゃんとした添付ファイルなのかを受け取った相手にわかるように,メールの本文でどういうファイルを添付するのか必ず明記しておきましょう.
マルチパートメッセージを読むときは,各パートが別々に表示されます.画像データのように,emacs で表示できない場合は,次のようになります.
###### ###### ####### ##### ###### # # # # # # # # # # # # # # # ## ## # # # # # # # # # # # # # # # ###### ###### # # # #### ###### # # # # # # # # # # # # # # ####### # # # # # # # # # # # # # # # # # # ####### ##### # # # # # # Content-Type: Image/Jpeg Encoding: base64 Size: 47975 bytes Filename: 07.jpg Program: xv To execute this external command, type C-c C-e. To save this part, type y. To display this part in Message mode, type C-c TAB. |
ここで,C-c C-e を押すと,xv を起動して画像を表示します.また,y を押すとファイルに保存できます.
● 練習問題
2番目のパートが HTML のソースファイル,3番目のパートが今日作った画像であるようなメールを,隣の人に送りなさい.
● 宿題
- Tgif で適当な図形を描き,その .obj ファイルと .eps ファイル,.png の3通りの形で保存し,それらのファイルの大きさを比べなさい.また,そのファイルを xv で他の形式のファイルに変換し,大きさが変わるかどうか調べなさい. どうしてこのようなことが起こるのでしょうか?
- 先週作ったホームページに,自分で描いた絵を入れ,楽しいホームページにしなさい.