• ベストアンサー

メールのデコードについて(RFC2231)

よろしくお願いいたします。 メーラー(Becky!やALMAIL等)によっては、RFC2231形式で添付ファイル名をエンコードして送信していますが、RFC2231形式で送信された添付ファイル名をデコードする方法をご教授いただきたく。 下記の@ITで紹介された記事によるとRFC2231形式は%の後ろ2文字の16進数がエンコードされた文字コードであるとなっています。 http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html しかし、Becky!等のメーラーでは、下記の【】内のように、%の間が2文字以上の場合や、ASCII文字列は直接埋め込まれてしまうパターンがあります。 【filename*=iso-2022-jp''%1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt】→元は【ほげほげ.txt】 ASCII文字列が直接埋め込まれている部分は何とかなるとして、%24B%のような部分はどのようにデコードするのでしょうか? もしかしてBはBASE64?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「% + 16進2桁」を 1つの文字に変換してください. 例えば %1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt だと「%1B」「%24」B「%24」「%5B」「%24」2「%24」「%5B」「%24」2「%1B」「%28」B「%2E」txt のように区切って, それぞれを変換することになります. ESC-$-B-$-[-$-2-$-[-$-2-ESC-(-B-.-txt となり, これは最初の「ESC-$-B」のシーケンスから ISO-2022-JP であることがわかるのでさらにデコードすると「ほげほげ.txt」となります.

threadman
質問者

お礼

ご回答ありがとうございます。 ストライクの回答でした。 %の後ろ2文字を16進数から10進数に変換。それより後の文字はアスキーコードに変換。その後全てを連結して指定された文字コードでデコードすると元の文字列に復元することができました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>【filename*=iso-2022-jp''%1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt】→元は【ほげほげ.txt】 「%1B%24B, %24%5B%242, %24%5B%242, %1B%28B」なので、それが正解だと思いますが・・   http://www.emaillab.org/essay/japanese-filename.html#rfc2231

threadman
質問者

お礼

ご回答ありがとうございます。 参考URLは知っていたのですが、エンコードについては触れられていないみたいでした。 RFC2231にも目は通したのですが、欲しい情報は載っていなかったです。 メールのエンコードは煩雑なので、早く統一されて欲しいものです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エンコードとデコードについて

    はじめまして。 下記1、2の操作をした場合についてお尋ねします。 1、【SoundEngine】でwma形式の音楽ファイルをwav形式に変換。 2、【windows media エンコーダ9】でwav形式に変換した音楽ファイルをwma形式に戻す。 辞書で調べると、エンコードとデコードの意味は下記のとおりでした。 ・エンコード(encode)は、符号化ともいい、デジタルデータを一定の規則に従って、目的に応じた符号に変換することである。 ・デコード(decode)は、復号ともいい、エンコードの対義語。エンコードした情報を元に戻すこと。 下記サイトでは、上記1の操作がデコードで、上記2の操作がエンコードとなっています。 感覚的には、最初に行う上記1の操作がエンコードで、後に行う上記2の操作がデコードのような気がします。 正しくは、どのように理解すればよいのでしょうか。 どうか教えてください。 ●FL Studioを使った手探りのDTM http://filenotfound.blog15.fc2.com/blog-entry-120.html#

  • MIMEでエンコードされたMailのSubjectのデコード、エンコード

    mailにおいて、MIMEにてエンコードされたSubject: の内容をテキストに落とすと例えば下のような エンコードされた文字列になります。 これをデコードし、かつエンコードするための VisualC++のコードを教えてください。 Subject: =?ISO-2022-JP?B?GyRCJTUlcyVXJWslYSUkJWsbKEI=?= よろしくお願いします。

  • 特殊な文字列のデコードについて

    ご教授願います。 迷惑メールなどに多いのですが、下記の様に記述されている文字列があります。 ↓↓↓↓↓↓ =1B$B"(%a!<%k1\MwL5NA"(=1B(B 上記の文字列をフリーウェアの「MBaker2」でデコードすると ↓↓↓↓↓↓ ※メール閲覧無料※ の様に、読める形の文字列に変換されます。 こうした形で意図的にエンコード(?)された文字列をPHPを使ってデコードするにはどうしたら良いのでしょうか? メールクライアントのOutlook Express6等でも読めるので、一定の法則に則って変換されていると思うのですが、そのアルゴリズム(?)が判りません。 PHPのマニュアルを調べてデコード系の関数を色々と試してみましたが、どうにも上手く行きません。 前述の「MBaker2」のヘルプから、HTML特有の制御文字列と漢字コードが関係している所までは判ったのですが、ココで壁にぶつかってしまいました。 PHPで人が読める形にPHPで処理するにはどうしたら良いのでしょうか? 宜しくお願いします。 P.S PHPのバージョンは 5.2.6 を使い、PHPでの入出力は、UTF-8で統一しています。

    • ベストアンサー
    • PHP
  • エンコード・デコードの仕方

    インターネットのアドレス欄に良く見る %a4%db%a4%b2%a4%db%a4%b2+%a4%db%a4%cb%a4%e3%a4%e9%a4%e9%a1%c1 って感じのエンコード文字列ですが、 これはナニ形式と呼ぶのでしょうか? また、この文字列をデコードするにはどうしたらよいのでしょう? Excelマクロ(VBA)のなかでちょっと使ってみたいので、 どなたか、ご教示の程おねがいします。

  • メールソフトについて教えてください。

    こんにちは。 メールソフトについて教えてください。 Becky!のように、メール送信時に送信元の変更のできる メールソフトってありますか? 下記のメーラーはどうですか? ・Thunderbird ・shuriken ・Eudora 6.2J ・Almail ・Outlook Express ・Microsoft Outlook よろしくお願いします。

  • base64?デコード?

    「テキストファイルを送るからデコードして使って」と言われ、 下記のような内容のファイルをもらったのですが、デコードとはどうすればいいのでしょうか? ・1つ目のテキストファイル "begin-base64 664 ○○(ファイル名).zip&#xA;fsjiiafaBABAEakhajkiij~(以降ランダムな文字列)" info="base64&gt;&gt;zip" ・2つ目のテキストファイル "FkufaskKKSDOkaklaaeiijjn~(以降ランダムな文字列)=" info="○○(ファイル名)&#xA;base64-&gt;rar" ネットで調べて、「このテキストファイルをバイナリソフトでデコードすれば目的のファイルになる」 ということはわかったんですが、 テキストの中のどこからどこまでをコピーすればいいのかわかりません。 ランダムな文字列の部分だけの新しいテキストファイルをつくってデコードをしたんですがエラーが出ました。 エンコードしたソフトでデコードすればいいのでしょうか? よろしくお願いいたします。

  • Edmaxの添付ファイル名のデフォルトエンコード方式

    Edmax 3.14からメール送信時に添付ファイルに日本語名を使用した場合にwebメールで受信するとファイル名が正しくデコードされず文字化け状態になっている場合があります。 メーラー設定の 添付ファイル名はRFC2231でコード化のチェックボックスにチェックを入れると正しいファイル名が表示されるのですが。 このチェックボックスにチェックを入れなかった場合にはEDmaxでは添付ファイル名をどのような形式でエンコードしているのでしょうか?

  • メールのSUBJECT

    メールをMIMEエンコードし、別のプログラムで読み込んで、メールを送信していますが。。。 メールのタイトル文字が長すぎるため、下記のようにすると改行されてしまい、タイトルが半分消えてしまいます。 $str_title = mb_encode_mimeheader($title); そこで、下記のように変更しました。 $str_title = "=?iso-2022-jp?B?" . base64_encode(mb_convert_encoding( $title , "JIS" , "EUC-JP" )) . "?="."\n"; 別のプログラムでタイトルを表示させるとき、デコードされていない状態で表示されます。 ただし、メール受信のときのタイトルは表示されます。(メーラーはBeckyを使用しています。) どのようにしたら別のプログラムでも日本語が表示されるのでしょうか?

    • ベストアンサー
    • PHP
  • VB6.0 Base64のデコード方法を教えてください

    VB6.0 でメールソフトを作っているのですが、受信したメールのヘッダで Subject 部分を見ると、 Subject: =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?= と訳の分からないアルファベットになってしまっています。 この Subject を日本語にする方法を教えてください。 一応、Base64のデコードという方法を知りましたが、この処理をVBで実行する場合のコードが分かりません。 工程的には下記の通りかと… サブジェクトの文字列から「?ISO-2022-JP?B?」の文字列の次のから「?=」までの間の文字列を抽出し、 GyRCJCIkJCQmJCgkKhsoQg== をネタに下記の処理。 1.各文字を2進数表記(6ビット単位)に変換(RFC 2045の Table 1 を使う)。 2.2進文字列(6ビット単位)を8ビット単位でまとめる。 3.8ビット単位の2進数をASCIIコードに変換。 4.シフトJISに変換。 ちなみに、この Subject の答えは あいうえお です。 分かる方、VBコードを教えてください。

  • メーラーについて

    こんばんは。 メーラーについて教えて下さい。 下記の機能のあるメーラーを探しています。 ・スレッド形式(ツリー形式?)で表示できる ・SMTP認証 ・振り分け機能 ・他のメーラーからデータ移行ができる メーラーの候補は下記になります。 ・Becky! ・shuriken ・Thunderbird ・Eudora ・Almail ・OutlookExpress ・Outlook どれかひとつでも使用した事の有る方、いろいろ使った 事の有る方、おススメなどありましたらどうか教えて下 さい。 よろしくお願いいたします。

このQ&Aのポイント
  • iPhone13でラベル屋さんアプリのデータを印刷しようとしても、他の機種ならそのままプリンターを感知して出来るのですが、感知せず印刷できません。
  • エプソンの印刷アプリ[Smart Panel]でのみ印刷可能なのでしょうか?Wi-Fi環境に問題はありません。
  • 設定や特定の条件が必要なのか、iPhone13でカラリオ EW-052Aのラベル屋さんアプリを使用して印刷する方法が知りたいです。
回答を見る