OpenedFileについて
なぜこのサイトを作ったか
OpenedFile は、開けない1つのファイルから始まりました。
届いたメールに winmail.dat
という添付ファイルが付いていました。見慣れない拡張子で、開く方法もなく、中身が何なのかも分からない。
誰でもそうするように変換ツールを検索したのですが、そこで本当の問題にぶつかりました。
見つかるサービスはどれも同じ仕組みだったのです ——
ファイルをサーバーにアップロードしてください、中身をお返しします。
よく考えると、これは奇妙な要求です。winmail.dat は定義上「誰かがあなたに送ったメール」そのもので、 契約書かもしれないし、請求書かもしれないし、社内資料かもしれない。中身を知りたいというだけの理由で、 それを見ず知らずのウェブサイトに渡すというのは順序が逆です。実際、日本語の解説記事はどれも同じ注意書きを 添えていました ——機密情報を含むファイルはアップロードしないよう注意してください。 割に合わないことは、みんな分かっていた。ただ、代わりの選択肢が無かっただけでした。
そこで、デコーダを自分で書くことにしました。winmail.dat の正体である TNEF は Microsoft の独自形式ですが、 仕様は自力で実装できる程度には公開されています。そして JavaScript で動くようにしてしまえば、 ファイルがどこかへ送られる理由はもう1つも残りません。このパーサがこのサイトの最初のツールになり、 そのとき決めたルールが今も全ツールに適用されています —— あなたのファイルは端末上で処理され、一度もアップロードされません。私のサーバーにも、他の誰のサーバーにも。
運営者
Ren
OpenedFile 開発者
OpenedFile の設計・実装・運用をひとりでやっています。ツールもパーサも記事もサイト自体も同じです。 法人やチームが後ろにいるわけではありません。ここに間違いや不具合があればそれは私の責任なので、 連絡していただく のが直る一番の近道です。
「アップロードしない」の実際の意味
プライバシーを謳うサイトはいくらでもあります。ここでの主張は、具体的で、その場で検証できる形にしてあります —— OpenedFile のツールを使うとき、あなたのファイルを乗せたネットワークリクエストは1回も発生しません。 変換は JavaScript・WebAssembly・HTML5 Canvas API を使ってブラウザの中で完結します。
これは私の言葉を信じてもらう必要はありません。ブラウザの開発者ツールを開き、Network タブに切り替えて、 ファイルを変換してみてください。ページとスクリプトが読み込まれた後、何も起きないのが分かります。 アップロードも、POST リクエストも、ファイルがタブの外に出ることもありません。
この設計には、正直に書いておくべき帰結があります。
- 完全なプライバシー: ファイルがインターネットを通らないので、サーバー側の情報漏洩・保持・ 第三者提供という心配がそもそも存在しません。
- 速度: アップロードとダウンロードの往復が無い分だけ速く、所要時間は回線ではなく端末の性能で決まります。
- オフラインで動く: ページさえ読み込んでしまえば、ほとんどのツールはネットワークが無くても動作します。
- アカウント登録もメールアドレスも不要: 私が課すファイルサイズ制限もありません。 上限は端末の使えるメモリだけです。
- トレードオフ: すべてローカルで処理する以上、メモリの少ないスマートフォンで巨大なファイルを扱うと サーバー方式より遅くなることがあり、ブラウザがその形式に対応している必要もあります。 それでも、ファイルを他人に渡さずに済むなら払う価値のある代償だと考えています。
ツール一覧
winmail.dat ビューア / 抽出
このサイトの出発点になったツールです。Outlook が生成した winmail.dat を開き、件名・差出人・本文を表示して、 中に入っている添付ファイルをすべてダウンロードできます。TypeScript でフルスクラッチ実装した TNEF パーサで動いており、 多くのツールが取りこぼす Shift_JIS・UTF-16LE のファイル名にも対応しています。
Outlook MSG ビューア
Outlook が無くても .msg を開けます。.msg はメールではなく1ファイルに収まった小さなファイルシステムなので、 複合ファイルのリーダーをここで書き起こしました。
これ何のファイル?
ファイルのシグネチャを読んで形式名をお伝えします(約150形式)。 対応形式ならその場で開き、未対応なら開けるアプリをご案内します。
EML ファイルビューア
Outlook や Thunderbird が無くても .eml メールファイルを読めます。ヘッダの確認、プレーンテキストと HTML の切り替え、 添付のダウンロード、テキストとして保存に対応。HTML 本文は DOMPurify でサニタイズし、 サンドボックス化した iframe 内に描画しています。
HEIC → JPG/PNG 変換
iPhone・iPad の HEIC/HEIF 写真を JPG または PNG に変換します。複数枚の一括変換と画質調整に対応。 デコードは WebAssembly で動かしているので、サーバーを使わずに速度を確保しています。
WebP → JPG/PNG 変換
ウェブからダウンロードした WebP 画像を、どのアプリでも開ける形式に変換します。 ブラウザ内蔵の Canvas エンコーダを使い、一括変換と画質指定に対応しています。
VCF → CSV 変換
vCard 連絡先ファイルを表計算ソフトで開ける CSV に変換します。UTF-8 BOM を付けているので、 Excel で開いても日本語の氏名が文字化けしません。
技術的な中身
- 自前の TNEF パーサ: winmail.dat ツールは、TypeScript で専用に書いたパーサが バイナリの TNEF 構造をたどり、MAPI プロパティを読み、マルチバイト文字コードをまたいで添付ファイル名を解決しています。 これをブラウザ内でやるライブラリが存在しなかったので、書くしかありませんでした。
- WebAssembly: HEIC/HEIF のデコードは Wasm で動かしています。 純粋な JavaScript では実用に耐えない処理をネイティブに近い速度で回すためです。 必要なときだけ読み込むので、写真を変換しない限りこのコストは発生しません。
- HTML5 Canvas API: 画像形式の変換は画像ライブラリを同梱せず、ブラウザ内蔵のエンコーダを使っています。
- DOMPurify + サンドボックス iframe: メールの HTML は定義上信用できません。 表示前にサニタイズし、さらにサンドボックス化した iframe の中で描画することで、 悪意のあるメールが周囲のページに手を出せないようにしています。
これから
直近で追加したのは MSG ビューア(これで Outlook のメールが届く3つの形式が揃いました)と、 ファイル判定ツール(シグネチャを読んで、このサイトで開けない形式でも正体をお伝えします)です。 次に検討しているものを、だいたいの優先順に挙げます。
- 形式別の解説をもっと増やす — 開けなくてここに辿り着く人が実際に持っているファイルについて
- S/MIME(.p7m)リーダー — 暗号化されたメール添付。winmail.dat と同じ形の困りごと
- SVG → PNG/JPG 変換
PDF 関連はしばらくこの一覧に入れていましたが、外しました。PDF の結合や分割は 「開けないファイル」ではなく作業であって、既に十分に確立したサイトが何社もあります。 このサイトが得意なのはそちらではありません。
この中に実際に困っているものがあれば、あるいは他に毎回つまずいている形式があれば、教えてください。優先順位が変わります。 お問い合わせはこちら。