VineLinuxパフォーマンスアッププロジェクト:0153
■メール本文を利用したバイナリファイルのエンコード・デコード法■
メールを利用してファイルを送る際には添付ファイルにして送る場合がほとんどだと思います。しかしメール本文に直接バイナリファイルを出力して送ることやそこからバイナリファイルのみ取り出すこともできます。
uuencodeコマンドはバイナリファイルを暗号化してテキスト出力にしてくれるコマンドです。これを利用すればメールに添付ファイルを貼り付けることなく送ることができます。またuudecodeコマンドはその逆で、メール本文にあるテキストデータを復号化して元のバイナリファイルに復元してくれるコマンドです。
●sharutilsのインストール
uuencodeやuudecodeコマンドが入っているパッケージとしてsharutilsがあります。以前のVineLinuxのバージョンではデフォルトでインストールされていましたが、VineLinux4.0よりsharutilsパッケージはVinePlusより入手するようになっています。
apt-get install sharutils
とターミナル上から入力してダウンロード・インストールするか手動でrpmパッケージを入手してインストールしてください。
●uuencodeコマンドの使い方
ここでは仮にエンコードしたいバイナリファイル名を"abc"としましょう。uuencodeコマンドの最も簡単な使い方は
uuencode エンコードしたいバイナリファイル名 復号化した際のファイル名 > 暗号化後のファイル名
です。たとえば
uuencode abc abc2 > abc.txt
とした場合、abcというバイナリファイル名を復号後にabc2というファイル名になるようにして暗号化後のファイル名(テキスト出力されるファイル名)をabc.txtにすることになります。">"はリダイレクトと呼ばれ、出力先を指定するために使用します。
これで作成されたテキストファイルの中身をメール作成時に本文に貼り付けることで転送が可能になります。
●uudecodeコマンドの使い方
udecodeコマンドの最も簡単な使い方は
uudecode 復号化したいのファイル名
です。先ほどのuuencodeに沿うと
uuencode abc.txt
になります。ここで、デコードする前のファイルの中身の一例として以下のような構成になっているはずです。
begin 644 abc2
M'XL("$@TY44``V=K+G!S`.S]_[,FMW7F"?Z>?\6=V.D(.S:D`I"9`%(1&V%D
M)K#CW;;:([K=FG`X-DID4:Q1D<6N*DIDU^I_W\\'M[Y17]R.F9X=[;9MD;SO
MO>^;;R9P<,[S`.<\Y]_]#W__V4_:%R]_]>PGZ:=A^7?_[GKU[.F;EZ]^]O#%
:
(中略)
:
MX<-?5,,>M>3E3H-'QC.0(`
`
end
メール本文に貼り付けられている場合には"begin"から"end"までをコピーしてテキストファイルなどに保存してください。
ファイル先頭と最後にある"begin","end"で囲まれた意味不明な文字列からある仕組みで元のファイルを復元します。"begin"の後にある644などの数字はおそらくファイルの権限(読み込み・書き込み・実行など)だと思います。
ターミナル上から上記のデコード処理コマンドを実行すると時々「end行がありません」などと警告が出ますが、実際ファイルの中身にはちゃんとend記述があるため、デコード処理は正常にできています。上記のデコード処理コマンドに沿って行うと、同一ディレクトリ内にデコード後のファイルができますのでちゃんと復元できているか確認してくださいね。