付録B.1 受信したバイナリデータの変換方法

Groupmax Mailから受信したメールデータの例を次に示します。ただし,実際のデータは改行が無視されて連続した形式で出力されます。

このデータは,マルチパートボディの形式になっています。マルチパートボディは,幾つかの異なるタイプのデータをまとめて転送する方式です。このデータの中で,begin ~ endの間がバイナリデータです。この時点では,バイナリデータはテキストデータに変換されています。

<受信例>

------------------------------ Start of body part1
How are you ?
------------------------------ End of body part1

------------------------------ Start of body part2
お元気ですか
------------------------------ End of body part2

------------------------------ Start of body part3
begin 755 smtpex

M``"=SE-`,¥```x|&&+,¥$``+&&B9PCR/)`````$`"`(T("303/|```
1I-"`DT$S MP0``$:;0x|)-+,¥$``+&&H("¥`+&&```++0$*H__P+3R
H/484"A?____|N15&&/ Mx|I`CT```$9A8B"](``0CR```$9Q*F&8
`__PB;P`$L=%M```$68+O2``((¥|`
 .
 .
 .
end
------------------------------ End of body part3

上記のbegin~endのデータを,元のバイナリコードに変換するにはuudecodeを使います。この場合の変換方法を次に示します。

  1. 受信したメールのバイナリデータの部分を別のファイルにコピーする
  2. バイナリデータをコピーしたファイルをuudecodeで処理する

uudecodeでファイルを処理すると,beginに付けられていた名称(smtpex)の実行ファイルが作成されます。なお,beginの宣言の755は復元された実行ファイルのパーミッションモードです。

マルチパートボディ方式では,uuencodeでASCIIコードに変換されない通常のテキストデータは,バイナリデータとは区別されメールの本文として一つにまとめられます。この場合,バイナリデータは同封データとして扱われます。そのため,次のように転送後にデータの配置が変わる場合があります。

[図データ]