分割メールの再結合

旧サイトの新サイトへの移行の際,自動変換されたファイルのため不備があります.修正版はこちらです

Windowsユーザである友人からアサギマダラの写真4枚がメールに添付されて送られてきた.「送ろうとしたメッセージは単一メッセージとしてサイズが大き過ぎるので,送信者がこのメッセージを 13 パートに分割して送信しました」と書かれているだけである.

1個のメールの大きさは約1MBであるから,全部で13MB弱である.WindowsのOutlook Expressなら自動的に繋ぎあわせて一個のメールに復元してくれることを知っていたので,Windows XPに切り替えて,メッセージと4枚の写真であることを確認できた.Outlook Express以外のメールソフトで受信した場合,どのようにして再結合しているのかインターネットで調べると,再結合できるのはOutlook Expressだけであり,結合の仕方が分からず困っている人が意外に多いことを知った.

Macの場合,購入時に付いているMailというソフトには再結合の機能はない.そこで,理屈に基づいて再結合に挑戦してみた.

Mac OSX環境下,受信したファイルの一つをテキストエディターで開いてみると,1個のファイルは,1行76文字(半角英数字)で構成された文字列が約13,000行続いている.この種のファイルが13個,受信箱に列んでいるわけである.

最初のファイルの先頭には,普段は見えないヘッダ(送信者や受信者の名前や,送信日時,どのサーバーを経由してきたか,使っているメールソフトは何かなど),次いで送信者からのメッセージ,さらに一見文字化けした様に見える半角文字列が延々と続くが,これが画像データの本体である.

二番目以降のファイルはヘッダと文字化された画像データである.すべてのファイルからヘッダ部分を機械的に削除し,順番につなぎ合わせれば目的のファイルを再現することができる.

1番目のファイル |ヘッダ|メッセージ|画像データ(文字)|

2番目のファイル |ヘッダ|画像データ(文字)|

3番目のファイル |ヘッダ|画像データ(文字)|

n番目のファイル |ヘッダ|画像データ(文字)| 以下同じ構造

分割メール(先頭ファイル)の内容

Return-Path: <YYYYYYYY@mb.infoweb.ne.jp>

Delivered-To: abcdefgh@s3.kcn-tv.ne.jp

Received: (qmail 8340 invoked from network); 26 Oct 2012 17:31:19 +0900

20行省略

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 6.00.2900.5931

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157

From: "XXXXXXXXXX" <YYYYYYYY@mb.infoweb.ne.jp>

16行省略

Content-Transfer-Encoding: 7bit

◯◯ 様

メッセージ 省略

------=_NextPart_000_0016_01CDB39F.8C025EF0

Content-Type: image/jpeg;

name="12-036.JPG"

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

filename="12-036.JPG"

/9j/4W+eRXhpZgAASUkqAAgAAAAKAA8BAgAKAAAAhgAAABABAgAIAAAAkAAAABIBAwABAAAAAQAA

ABoBBQABAAAAmAAAABsBBQABAAAAoAAAACgBAwABAAAAAgAAADIBAgAUAAAAqAAAABMCAwABAAAA

AgAAAGmHBAABAAAAjAEAAKXEBwDQAAAAvAAAAB4eAABQYW5hc29uaWMARE1DLVRaMwBIAAAAAQAA

AEgAAAABAAAAMjAxMjoxMDoyNiAxNDowNDowNgBQcmludElNADAyNTAAAA4AAQAWABYAAgAAAAAA

AwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAADgDEAAAAAAEF

AAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAnAAABHAAAECcAAF4C

AAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAIgCaggUAAQAAACoDAACdggUAAQAAADIDAAAiiAMAAQAAAAIAAAAniAMAAQAAAKAA

AAAAkAcABAAAADAyMjEDkAIAFAAAADoDAAAEkAIAFAAAAE4DAAABkQcABAAAAAECAwACkQUAAQAA

AGIDAAAEkgoAAQAAAGoDAAAFkgUAAQAAAHIDAAAHkgMAAQAAAAUAAAAIkgMAAQAAAAAAAAAJkgMA

AQAAABgAAAAKkgUAAQAAAHoDAAB8kgcAdhoAAIIDAAAAoAcABAAAADAxMDABoAMAAQAAAAEAAAAC

oAQAAQAAAAAMAAADoAQAAQAAAAAJAAAFoAQAAQAAAAAeAAAXogMAAQAAAAIAAAAAowcAAQAAAAMA

AAABowcAAQAAAAEAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUAAQAA

APgdAAAFpAMAAQAAABgBAAAGpAMAAQAAAAAAAAAHpAMAAQAAAAEAAAAIpAMAAQAAAAAAAAAJpAMA

AQAAAAAAAAAKpAMAAQAAAAAAAAAAAAAACgAAAOIEAAAxAAAACgAAADIwMTI6MTA6MjYgMTQ6MDQ6

MDYAMjAxMjoxMDoyNiAxNDowNDowNgAEAAAAAQAAAAAAAABkAAAAWAEAAGQAAADMAQAACgAAAFBh

bmFzb25pYwAAAC4AAQADAAEAAAACAAAAAgAHAAQAAAAAAQAJAwADAAEAAAABAAAABwADAAEAAAAF

AAAADwABAAIAAAAQEAAAGgADAAEAAAACAAAAHAADAAEAAAACAAAAHwADAAEAAAAiAAAAIAADAAEA

AAACAAAAIQAHAAgYAAC4BQAAIgADAAEAAAAAAAAAIwADAAEAAAAAAAAAJAADAAEAAAAAAAAAJQAH

以下13,000行省略

処理手順

1)デスクトップにasagi(今回使用した名前)というフォルダを作る.

2)メールソフトを使って,13個のファイルを,ファイル番号順にa01, a02, a03 ------a13のようなファイル名で別名保存する.

3)それぞれのファイルをテキストエディタで開き,ヘッダ部分(先頭から最初の空行まで)を削除し,同じ名前で保存しなおす.

そのファイルをどうするかは,UNIX (Linux) の教育を受けていないと分からないかもしれない.

Mac OS Xは,UNIX OSであるからコマンドを使って処理する.

4)ターミナルソフトを起動,コマンド入力画面が現れる.

5)以下,cd, ls, cat等のunixコマンドを利用して処理する.

ターミナルの表示と処理

Last login: Sat Oct 27 08:29:14 on console

khmini:~ KH$ cd desktop 保存ファイルを入れているフォルダ (asagi) のあるデスクトップへ移動する

khmini:desktop KH$ cd asagi asagiフォルダへ移動

khmini:asagi KH$ ls 保存ファイルの確認

a01.eml

a02.eml

a03.eml

a04.eml

a05.eml

a06.eml

a07.eml

a08.eml

a09.eml

a10.eml

a11.eml

a12.eml

a13.eml

khmini:asagi KH$ cat a1.eml a2.eml a3.eml a4.eml a5.eml a6.eml a7.eml a8.eml a9.eml a10.eml a11.eml a12.eml a13.eml >> all.eml

khmini:asagi KH$

cat file1 file2 ------ file n > fileall の構文を用いれば,ファイル群は結合される.今回,生成するファイルはall.emlである.

すべてのファイル名を書く代わりに,正規表現を使えば,もっと簡単である.

khmini:asagi KH$ cat a[0-1][0-9].eml >> all.eml

ファイルの順番と番号付けに誤りがなければ,ワイルドカードを利用したcat a*.eml > all.emlでも結合できる.

結合したファイルをメールソフトに乗せると1個のメール(12.6MB)として再現される.今回添付された画像データは合計8.8MBであった.

再生画像 縮小ファイルを掲載

なお,非画像データの削除の仕方や結合する順番を間違えると画像が乱れる.その時は最初からやり直せばよい.

熊本大学薬学部の情報処理の授業では,情報リテラシー教育の外に,この程度の処理は操作手順書を見れば対応できるような知識付与を行っていたが,現在はどうなっているか分からない.

(2012/10/29)