忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/04/20

Thunderbird で winmail.dat を読む Add-on

MS Outlook シリーズでリッチテキスト形式でメールをしたりするとできる winmail.dat という添付ファイルがあります。2007 になったらどうも抑制がうまくいかないとかいう話がありますがそれは今は関係ありません。Outlook 批判でもありません。

TNEF とか winmail.dat で検索するとオープンソースプロジェクトもあるし、Windows 用のツールがあったりします。

んで、そんな折に「Thunderbird を使っているんだけど winmail.dat なファイルを読み出すにはどうすればいいです?」という相談が寄せられた。社内から。Thunderbird は Add-on の開発が盛んなのでなんかあるだろうと思ったらありました。LookOut というものです。念のために動作確認もしましたが、日本語ファイル名は化けてしまうようです。

ろくに確認もせずに、文字化けの解決を模索してみました。lookout.jar の tnef.js を無理な編集してやれば大丈夫です。根本的な解決は開発陣にまかせるとして

file.name = tnef_file_munge_fname( attrs[i].values[0], files );

の直後に

var UConv = Components
  .classes['@mozilla.org/intl/scriptableunicodeconverter']
  .getService(Components.interfaces.nsIScriptableUnicodeConverter);
UConv.charset = "Shift_JIS";
file.name = UConv.ConvertToUnicode(file.name);

としてやると日本語のファイル名は戻ります。内部は Unicode なんですね。

無理な編集ですし、根本的な解決は開発陣にまかせるとして、ついでに TNEF (Transport Neutral Encapsulation Format) の詳しい仕様も調べる気もありません。仕様は別にして、MS が API 仕様を公開しています。ITnef : IUnknown とか OpenTnefStream とかがあるみたいです。COM で叩けばいけるんだと思いますが TNEF 自体の仕様ではないので参考までに。TnefReader Classなんてのも Windows Server 2003, Windows Server 2008 用としてあるぽいです (.NET ですかね)。MessageCodepage という property があるので、ファイル名もこのコードページにしたがえばいいんでしょうかね。自前でデコードしてもどこかにあるはずですわ。

ここまでやっておいてなんですが、Thunderbird は使っていないのでこのあたりで。

注意:上記コード片は MPL 1.1/GPL 2.0/LGPL 2.1 にしたがった物としないとまずいと思うのでそう扱ってください。

PR

2009/07/11 Note Trackback() Comment(0)

COMMENT

COMMENT FORM

NAME
MAIL
WEB
TITLE
COMMENT
PASSWORD

TRACKBACK

TRACKBACK URL :
カテゴリー
 
 
 
最新記事
 
(05/20)
(08/13)
(06/15)
(03/28)
(05/31)
 
 
ブログ内検索
 
 
 
カレンダー
 
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 
 
アーカイブ
 
 
 
最新TB
 
 
 
最新CM
 
 
 
リンク
 
 
 
Feed
 
 
 
注意点
 

英字のみのコメントは拒否しています。スパムの排除のためご理解をお願いいたします。(でも結構スルーされてしまいます。たまに掃除していますがご容赦のほどを。)

 
 
カウンター
 
 
 
アクセス解析