9.5 電子メールで画像を送る

MIMEメッセージ

電子メールでは今までのような文字だけではなく,音声や画像といったデータも送ることができます.これを可能にしているのが MIME という形式です.MIME 形式でメールを送ると次のような いろいろなことができます.

Subject: こんにちは

は,実際に送信される時は

Subject: =?iso-2022-jp?B?GyRCJDMkcyRLJEEkTxsoQg==?=

となります.Mew などの MIME 対応のソフトを使っていれば,変換は自動的に行われるので,気にする必要はありませんが,そうでないソフトを使っている人に送ると,日本語部分は読めませんから気をつけましょう.

● 練習問題

自分のログイン名の最後のアルファベット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 を押すとファイルに保存できます.

CNSMewの操作法 P.209参照

● 練習問題

2番目のパートが HTML のソースファイル,3番目のパートが今日作った画像であるようなメールを,隣の人に送りなさい.

● 宿題

  1. Tgif で適当な図形を描き,その .obj ファイルと .eps ファイル,.png の3通りの形で保存し,それらのファイルの大きさを比べなさい.また,そのファイルを xv で他の形式のファイルに変換し,大きさが変わるかどうか調べなさい. どうしてこのようなことが起こるのでしょうか?
  2. 先週作ったホームページに,自分で描いた絵を入れ,楽しいホームページにしなさい.