====== ファイルのエンコード ====== ===== uuencodeとuudecode ===== uuencode(拡張子は.uuや.uue)とは**UNIX UNIX encodeの略**。バイナリファイルをテキストデータに変換(エンコード)もしくはそのデータをもとのバイナリデータに符号化(デコード)するもの。可逆。むちゃぶりですが文字列を覚えられたら、人間でもバイナリを喋れる。 ==== CentOS(Linux)とuuencode ==== CentOSでは(標準で)uuencodeがないはず。必要であれば、それらを含むsharutilsパッケージをインストールすること。 =====uuencodeしてみる===== # uuencode ./gazou.jpg WORDs > file.uu ファイルサイズが1.5倍くらいになるけどたしかにmoreで見られる。正確なファイルサイズの増え方はマニュアルに書いていたと思う。ちなみに、uuencode -m するとbase64になる。**WORDsにつけた名前が、uudecode後のファイル名となる。** サーバから配送するとき、圧縮(compress)して送るというのがまあベターな手順。(mailx で ~r してもいけるけど) =====uudecodeしてみる===== # uudecode ./file.uu uuencode時に指定したWORDsのファイル名にデコードされる。 ===== MIMEとは ===== MIMEとはMultipurpose Internet Mail Extensionsの略。uuencodeだと1つの(バイナリ)ファイルに説明をつけて送る、だったが本文とかも全部ひっくるめて送りたい場合に使われるようになった。 ものすごくさっくり書くと ^MIMEバージョン|MIMEバージョン名を書いておく| ^何のファイルか|そのファイルがもともと何かを書く。text/htmlとかimage/jpegとか| ^符号化の方法|charsetってやつ| ^内容のエンコードビット数|content-transfer-encoding : 7bit とか| こういう情報をうめこむ。MewとかだとMIMEマルチパートの編集ができる。 で、MIME対応しているMUAとか(←まだ調べきってないよ%)であれば、何も考えずにエンコード・デコードできる。 たとえば、**HTMLメールで**こういうメールを送った場合、 サブジェクト:TEST DESU YO ※半角英数で書くことがポイント 本文:ほげほげ(改行)ほげほげ(赤)(改行)シグネチャ ※2行目はフォント色を赤に、シグネチャはイタリック(斜体)に 実際のメールの中身はこうなる(一部ヘッダ略) Received:(経由サーバ) Message-ID: メッセージID From: メール差出人 To: =?iso-2022-jp?xxxx※宛先メールアドレスを漢字で登録していたため Subject: TEST DESU YO ※半角英数のためそのまま表示していることに注目 Date: メール送信日付 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_006B_01C9759C.xxxxx" This is a multi-part message in MIME format. ------=_NextPart_000_006B_01C9759C.xxxxx Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit ほげほげ ほげほげ(赤) (しぐねちゃ) ------=_NextPart_000_006B_01C9759C.xxxxx Content-Type: text/html; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable ※以下HTMLメールの中身(タグ付き) ------=_NextPart_000_006B_01C9759C.xxxxx-- NextPartの部分は同じ文字列ってことね ---- ==== 参考資料 ==== * インターネットメールの注意点(HATさん、個人ページのウェブアーカイブ版。情報が古いけど、役立つ。), http://web.archive.org/web/20080107153216/http://www003.upp.so-net.ne.jp/hat/imail/cover.html #文字化けするときはエンコード設定でiso-2022-jpにする * メールにかけられた呪文「MIME~前編」(@IT、梁瀬介次さん、2001年), http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html * uuencode(1)のマニュアル * RFC5321と5322(IETF),http://tools.ietf.org/html/rfc5321 と http://tools.ietf.org/html/rfc5322