UNIX mbox形式のインポートについてNo.04325
vauhatto さん 12/11/21 21:27
 
秀まるお様

 UNIX mbox形式のインポートについて、次のような、複数の宛先To:やCC:があ
るメールについて、宛先欄などに、ISO-2022-JP の文字や通常の半角文字が混在
する場合は、ISO-2022-JP で、記載されたメールアドレス複数が、" " で囲まれ、
" "で囲まれたメールは、メールアドレスとして強調表示しないです。
 他のメーラでは、""は、つかず正常にインポートできるので、動作の修正等を
お願いします。


(例)

//------UNIX mbox形式のデータの一部----------------
To: <XXX1@XXX.XXX.jp>,        
      =?ISO-2022-JP?YYY2・・・
      =?ISO-2022-JP?YYY3・・・
      =?ISO-2022-JP?YYY4・・・
    <XXX5@XXX.XXX.jp>,

//--------------------------------------------------

YYY2・・・ の変換後 は、   ○○2 <XXX2@XXX.XXX.jp>
YYY3・・・ の変換後 は、   ○○3 <XXX3@XXX.XXX.jp>
YYY4・・・ の変換後 は、   ○○4 <XXX4@XXX.XXX.jp>


とすると、


//----------変換後---------------------------------
To: <XXX1@XXX.XXX.jp>,"<○○2 XXX2@XXX.XXX.jp>,○○3 <XXX3@XXX.XXX.jp>,
○○4 <XXX4@XXX.XXX.jp>", <XXX5@XXX.XXX.jp>,

//----------------------------

となり、" "で囲まれたアドレスは、秀丸メールでは、アドレスとして強調表示し
ない。

 ただし、@は、半角とする。

[ ]
RE:04325 UNIX mbox形式のインポートにつNo.04329
秀まるお さん 12/11/22 09:50
 
 これも、申し訳ありませんが秀丸メールの方が正しくて、""で囲まないメール
ソフトの方が間違いってことになると思います。

 Becky!は間違った動作をしてるようです。
 Windows Liveメールは正しく""で囲んでくれます。

 例えばですが、From:が、

From: =?iso-2022-jp?B?GyRCJCIkIiQiGyhCIDx4eHhAaG9nZS5ob2dlPg0K=?= <xxx@xx.xx>

 のようになってたとします。

 これをbase64デコードすると、

From: あああ <xxx@hoge.hoge> <xxx@xx.xx>

 のように、メールアドレスが2つ並んでしまいます。このままではメールソフ
トによってどう解釈されるか不定の、不正な表記方法になります。なので、こう
いうのは、ちゃんと

From: "あああ <xxx@hoge.hoge>" <xxx@xx.xx>

 のように、名前部分をダブルクォーテーションで囲ってやる必要があります。

 ちなみにBecky!で上記の宛先に返信すると、本来は<xxx@xxx.xx>側に返信すべ
きなのに、そちらには返信せずにxxx@hoge.hogeの方にメールを送ってしまいま
す。これは、悪く言うなら宛先の偽装攻撃を受ける可能性のある、いわゆる「脆
弱性」と言われても仕方のないバグじゃないかと思います。

[ ]
RE:04329 UNIX mbox形式のインポートにつNo.04331
vauhatto さん 12/11/22 23:30
 
秀まるお 様

 よく調べたら、ほかのメーラも秀丸メールと同じ動きをしてました。
失礼しました。

ただ、

//UNIX mbox形式1--------------------
To: =?ISO-2022-JP?B?PFhYdVhAYmIuY2MuanA+LCAbJEIheyF7IzIbKEIgPGFhMkBiYi5jYy5q
cD4sIBskQiF7IXsjMxsoQiA8YWEzQGJiLmNjLmpwPiwg?=
//--------------------------------------

には、" "が入らず、改行後に、名前がないアドレスのみの標記となる場合、
つまり

// UNIX mbox形式2--------------------
To: =?ISO-2022-JP?B?PFhYdVhAYmIuY2MuanA+LCAbJEIheyF7IzIbKEIgPGFhMkBiYi5jYy5q
cD4sIBskQiF7IXsjMxsoQiA8YWEzQGJiLmNjLmpwPiwg?=
    <xxx@bb.cc.jp>
//--------------------------------------

の場合には、" "が入ってしまうのが、納得がいかないのです。
UNIX mboxの形式が悪いといわれれば、そうなのかもしれませんが・・・


 なぜ、上記の相談をしているのか説明しますと、EDMAXフリー版のメールデー
タを、エクスポートプラグインを使い、UNIX mbox形式にエクスポートし、秀丸
メールにインポートすると、複数のアドレスが、" "に囲まれ、メールアドレス
として処理されないからなんです。

 エクスポート時の問題で、秀丸メールには、何も関係ないのかもしれませんが、
解決策がありましたら、教えていただければと思います。


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:04331 UNIX mbox形式のインポートにつNo.04332
秀まるお さん 12/11/23 10:03
 
> //UNIX mbox形式1--------------------
> To: =?ISO-2022-JP?B?PFhYdVhAYmIuY2MuanA+LCAbJEIheyF7IzIbKEIgPGFhMkBiYi5jYy5q
> cD4sIBskQiF7IXsjMxsoQiA8YWEzQGJiLmNjLmpwPiwg?=
> //--------------------------------------
>
> には、" "が入らず

 こちらは名前だけあってメールアドレスが存在しないことになるようで、本来
でしたらこれも""で囲まないといけないことになります。

 Windows Liveメールでテストしたら、例えばFrom:に上記のような内容を入れ
てインポートさせると、それに対して返信することが出来なくなるようでした。

 秀丸メールでも、本当はそうすべきなんだと思います。

>  エクスポート時の問題で、秀丸メールには、何も関係ないのかもしれませんが、
> 解決策がありましたら、教えていただければと思います。

 EdMaxさんでメールデータをエクスポートする形式をいろいろ変えてみたらど
うかなぁと思います。base64エンコードするとおかしくなる訳なので、base64エ
ンコードしないようにエクスポートさせたらどうかと思います。

 それか、一度エクスポートされたデータを秀丸エディタの変換モジュールを使
うなどしてデコードしてやって、それから秀丸メールにインポートさせる方法も
あるかと思います。

 秀丸エディタのbase64デコード用変換モジュール:
 http://hide.maruo.co.jp/lib/hmconv/hmfbase64_100.html

 あとは、ダメモトでEdMaxの作者さんに相談してみるとか。というか、そもそ
もそっちに相談すべき問題だと思います。

[ ]
RE:04332 UNIX mbox形式のインポートにつNo.04333
vauhatto さん 12/11/26 01:47
 
秀まるお 様

>  それか、一度エクスポートされたデータを秀丸エディタの変換モジュールを使
> うなどしてデコードしてやって、それから秀丸メールにインポートさせる方法も
> あるかと思います。
>
>  秀丸エディタのbase64デコード用変換モジュール:
>  http://hide.maruo.co.jp/lib/hmconv/hmfbase64_100.html


 早速、既存のUNIX Mboxデータをbase64デコード用変換し、インポートしたと
ころ、今度は、一部メールデータについて、To: ヘッターの、1番目の名前欄が
文字化け今しました。
 次のUNIX Mboxデータで、エラーが再現できましたので、動作確認の検証の方
をお願いします。
 

//UNIX MBOXの内容---------------------------
From - Tue Oct 14 11:11:11 2008
Subject: ○○○○○○○
From: 岡本 <xxx@XXX.XXX.XXX>
Date: Tue, 14 Oct 2008 14:11:11 +0900
To: 岡本 <xxx@XXX.XXX.XXX>
Message-Id: <sss201211260105-se>
MIME-Version: 1.0

//---------------------------------------------

・base64デコード変換後、JISコード(元のファイルの文字コード形式のまま)
で上書き保存したら、文字化けしました。

・S-JISコードで保存しなおしたあと、インポートしたら、文字化けしませんで
した。



---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:04333 UNIX mbox形式のインポートにつNo.04334
秀まるお さん 12/11/26 08:38
 
 文字化けした原因は、たぶんContent-Type:ヘッダとかも関係してると思いま
して、連絡いただいた内容だけではちょっと原因は分からないです。

 こちらで簡単に出来る用のテストデータをいただければこちらでもテストして
みます。メールで送っていただくとしたら、"maruo@mitene.or.jp"にお願いしま
す。

 ただ、EdMaxさんのエクスポートしたデータ的に矛盾があることが原因でした
らこちらで対応出来ない可能性はあります。その点ご了承ください。

[ ]
RE:04334 UNIX mbox形式のインポートにつNo.04336
vauhatto さん 12/11/26 23:01
 
秀まるお 様

>  文字化けした原因は、たぶんContent-Type:ヘッダとかも関係してると思いま
> して、連絡いただいた内容だけではちょっと原因は分からないです。

http://kie.nu/Amc

にサンプルデータをアップロードしました。

・なお、Content-Type:ヘッダは、Base64のデコード前のものをそのまま使用し
ているので、それが原因なのかもしれません。


[ ]
RE:04336 UNIX mbox形式のインポートにつNo.04337
秀まるお さん 12/11/26 23:34
 
 テストデータ作っていただきありがとうございます。

 で、テストしてみましたら、原因が分かりました。

 JISコードだと、漢字の部分がコンマになってしまうケースがあるようで、そ
れのせいで化けてしまってるようです。例えば「測」はJISだと

 0x42  0x2C

 ってデータになるんですが、その2バイト目の「2C」がコンマに見えてしまい
ます。それでおかしくなるようです。

 一般にはこういう文字列はbase64エンコードして入ってくるので普通のメール
では問題は起きないのですけども、今回のケースはデコードされてしまってるが
ためにおかしくなってしまうようでして…。

 とりあえずの対処として、JIS文字コードのファイルをShift-JISに変換してか
ら秀丸メールにインポートさせるって方法があるんですが、それはダメでしょう
か。どっちにしてもbase64デコードさせる変換をされてる訳なので、ついでに保
存の時にShift-JIS形式を選択してやればそれで解決します。

 秀丸メールでは、Content-Type:でiso-2022-jpと指定されていたとしても、
Shift-JISの文字はうまく認識します。

 JIS文字コードでないとダメでしたら、秀丸メールの方で対処させていただこ
うかなぁと思いますけども、とりあえずアップロードしていただいたテストデー
タはShift-JIS作戦でうまくインポート出来るようでした。

[ ]
RE:04337 UNIX mbox形式のインポートにつNo.04341
vauhatto さん 12/11/27 23:52
 
秀まるお 様


>  一般にはこういう文字列はbase64エンコードして入ってくるので普通のメール
> では問題は起きないのですけども、今回のケースはデコードされてしまってるが
> ためにおかしくなってしまうようでして…。

 Becky!では、問題なくインポートできるようです。


>  JIS文字コードでないとダメでしたら、秀丸メールの方で対処させていただこ
> うかなぁと思いますけども、とりあえずアップロードしていただいたテストデー
> タはShift-JIS作戦でうまくインポート出来るようでした。

 JIS文字コードでないとだめなことはないんですが、200個くらいのファイルを、
Shift-JISに変更して、200個くらいのフォルダーにそれぞれインポートする作業
を考えたら、憂鬱なんです。
 (To CC の" "の問題からあわせて、2回、インポートのやり直しをしていま
す。)

 インポートについては、フォルダー構造を保ってインポートする公開マクロも
試しましたが、途中でエラーがでてしまい断念しました。


複数ファイルにマクロ実行 Ver.1.06
http://hide.maruo.co.jp/lib/macro/batchmac106.html

を使用し、次のマクロで行う方法しか思いつきませんでした。

//Base64にデコード------------
selectall;
filter "HmfBase64.hmf" , "Base64Decode";
//--------------------------------------------


 上記マクロの場合、ファイルサイズは、180MBクラスになると、メモリー不足
になってしまい、ファイルを分割する必要が生じました。

 よろしければ、もっと簡単かつ、PCに負荷がかからない方法があれば教えて頂
ければと思います。


 Shift-JIS にまとめて変換するマクロを、setcompatiblemode 0x0F;  を使用
し、上記と同様に作成しようとしましたが、上手く、できなかったの

[ ]
RE:04341 UNIX mbox形式のインポートにつNo.04342
秀まるお さん 12/11/28 00:06
 
 とりあえずJISコードで0x2Cとかの文字が混じってるメールでも正しくイン
ポート出来るように、秀丸メールの方を修正させていただきます。

 今日はもうアップロード出来ませんでした。明日アップロードします。

 filterでのメモリ不足が起きる問題についてもなんとかしたいです。ちょっと
今余裕が無いですけども…

[ ]
RE:04341 UNIX mbox形式のインポートにつNo.04343
秀まるお さん 12/11/28 10:36
 
 変換モジュールでメモリ不足が起きる件ですが、一応、秀丸エディタの方での
メモリの使い方を最適化したら、手元のバージョンで300メガバイトのテキス
トでも変換出来るようになりました。

 Windows7の64bit版上でなので、WindowsXPとかWindows7でも32bit版だともっ
と少なくなるかもしれませんけども。

 次の秀丸エディタの方でとりあえずその修正だけ反映出来ると思います。

 秀丸エディタを改良したら、300メガは大丈夫になりましたが400メガで
変換したら落ちるようになってしまいました。これは変換モジュールの方がメモ
リ取得に失敗した時のエラーチェックをしてないせいでした。これはこれで変換
モジュールの方を、また適当なタイミングで修正させていただきます。そのとき
ついでに64bit版も追加しようかと思います。

[ ]