Evernoteへテキストメモや過去のメールをインポートする方法

【2011.05.03追記】
かなり良い方法を見つけたので、この記事の情報は古いものになりました。詳細はこちら。
Evernoteに過去のメールをインポートする方法 - えんたつの記録

=====追記ここまで=====

【やりたい事】
自分のGmailに入ってるメールや、ローカルにあるテキストメモを、全てEvernoteに入れたい(環境はWindowsです)。


【結論】
メールは1通1通をThunderbirdから「ImportExportTools」というアドオンで個々のhtmlファイルにしといておく。そしたらテキストメモとかと一緒にEvernote ver3.5のクライアントのメニューで「ツール」⇒「フォルダーをインポート」。
かなりダサい方法ですが、これが最もまともに動作します。なお今回はメールについて書きましたが、テキストメモではENScript.exeを使う方法があるようです。


【前置き】
Evernoteに入れたいのは、ほとんどが「あとで読む」によりgmailに保存したもので、中身はhtml。どちらも手作業でやりたくない量なので、どうやれば自動化できるのか考える。
Evernoteのアドレスにメールを送る設定にすれば良さそうですが、それだと今までに受信したメールはEvernoteに入れられません。)

Evernote⇒Gmailをやっていらっしゃる方は見つけましたが、Gmail⇒Evernoteが見つからないのです。.enexと.emlを相互に変換するソフトか何かあれば解決するのですが…。僕の検索不足なだけで、あっさり解決しそうな予感。

参考:
EvernoteからGMailへ移行するツールを作ったが・・・ -- 仕事を早く.正確.カンタンにするツール職人 -DocuWorks(R)用プラグイン,フリーソフト,ペーパーレス-
EvernoteをやめてGmailへ: Shu's blog 雌伏編


【メール転送を使う】
メールをEvernoteのアドレスに転送する。
上手くEvernoteへデータ移行できますが、1通1通手作業でやらなくてはなりません。ちょっとデータを追加したい時には便利。


【複数メールを転送】
Thunderbirdにて、複数メールを選択⇒右クリック⇒「添付として転送」を選択。
これにより、メールにhtmlファイルが添付された形になり、何通かずつEvernoteのアドレスにメールを転送する事ができます。
Evernote上では、添付したメールは1つのノートになります。(3通添付したら、3つが連結されて1つのノートになる。)これはこれで便利そうですが、今回の用途には適していません。
添付ファイルの容量制限に注意。



【メールをhtmlファイルにしてからEvernoteに読み込ませる】
直接メールを読み込ませるのが面倒なので、一括でhtmlに変換し、それをインポートする事にします。
Thunderbirdに「ImportExportTools」というアドオンを入れ、必要なメールをhtmlに一括出力。

出力したいフォルダを右クリック→「インポート・エクスポート」→「フォルダ内のすべてのメッセージをエクスポートする」→「HTML形式」で、フォルダの中身が一括でhtmlになります。


○Evernote ver4.1のクライアントにおいて
(version4.1.0.3345において実験)
「ツール」⇒「インポートフォルダ」からファイルを一括でインポートできます。
しかし、元のファイルがテキストだろうがhtmlだろうが、読み込むもののノートの中が読めない、検索対象とならない、という現象が発生します。添付ファイルとしてインポートされるようです。これでは使いものになりません。

僕の環境が原因なのではなく、他の人もそうなっているようです。参考
この記事では3.5の挙動が問題になっていますが、僕の環境では3.5は正常に動作するようです。この調子で正常にインポートしてくれるのがベストなんですけどね。



○Evernote ver3.1のクライアントにおいて
クライアントの「File」⇒「Import」⇒「File Import Wizard」からファイルを一括でインポートできます。
インポートすると、ファイルに文字化けが起きているようです。

これは文字コードの問題のようです。
「SHIFT-JIS」のファイルは読み込み可能で、「UTF-8」のファイルは読み込み不可、という事みたいです。
(僕の環境で実験したらそうなりました。調べてみると、ファイルのインポート時はこれで合ってるけど、webからのクリップ時には逆らしいです。よくわからない事になっています。)
参考
ChangeLogメモをEvernoteに一本化した ? tune web
Twitter / @M. E. Hori: Evernote の ShiftJIS (?)文字化 ...
EvernoteでShift JISページをクリップ: 永遠ログ

なので、文字コードを変換して読み込ませましょう。こちらの「KanjiTranslator(http://www.kashim.com/kanjitranslator/)」で文字コードを一括変換できます。(設定は、Shift JIS、改行=CR+LF)

しかしこのままでは、htmlファイルに書かれた文字コードと実際の文字コードが食い違う事になります。(※「あとで読む」サービスを通すと、文字コードが全部「UTF-8」になり、htmlの最初に「<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />」等のコードが入る。)
かなり気持ち悪いので、複数のテキストファイルを一括処理できるソフトを探して、この部分を修正しましょう。

何種類かフリーソフトがありますが、今回は「 Grep and Replace」でやってみました。
フォルダを指定して「<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />」を「<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />」に一括置換。

この方法、基本的に上手く行くのですが、100%上手く行く訳では無いようです。先ほどの文字コードの変換で上手く行かなかったファイルは、この段階で変な事になります。現在、解決策は見つかっていません。

この方法でEvernote3.1のクライアントでインポートすれば、無事にファイルがEvernoetにクリップされます。検索精度が引い気がするものの、検索も正常に行えます。
問題は、ノートにタイトルがつかない事。テキストファイルをインポートした場合、1行目がノートのタイトルになります。しかし、htmlファイルをインポートすると、ノートにタイトルがつきません。ファイル名とかもつかないです。


○Evernote ver3.5
「ツール」⇒「フォルダーをインポート」からフォルダを指定すれば、htmlファイルも一括で読み込む事が可能でした。
一括で読み込み可能で、ファイル名も正常。最もスムーズに移行できました。
ただし、一部のファイルが正常に読み込まれ無いです。おそらく、元々のhtmlに文字化けがあるとそこで読み込みが止まってしまうか、全く読み込まれないようです。元々ファイルが壊れているようなものなので、仕方ないですね。後から修正しましょう、

どのファイルが正常にインポートされたのかを判断するには見た目に頼るしか無いようです。クライアントのサムネイルが空になっているのが正常にインポートできなかったやつなので、それを目視で探し、ノートを適当に変更します。この修正の手間があったとしても、かなり楽に登録できるのは確か。


○ENScript.exeを使う
紙copi から Evernote への移行 - すけ
Evernote for Windows付属のENScript.exeを使う | DIGINOIZ:NET 3rd

こちらのサイトで紹介されている方法を使います。今回はテキストファイルではなくhtmlファイルをインポートするので、その部分だけ修正して実行。Evernoteのバージョンは、記事の通りに3.5にしました。
ですが、拡張子がhtmlのファイルには対応していないようです。残念。


【まとめ】
このようにEvernoteはデータインポート機能ではまだまだです。他のサービスから乗換を考えるなら、データインポート機能は必須だと思うのですが・・・。今後の改良に期待しましょう。



【追記】
Mac環境の場合、このような方法があるそうです。
iPhone のテキストメモ(ノート)を Evernote へ簡単に移行する方法 | ogaoga.org

就活サイトへのログイン回数を見る無意味さ


就活特集を組んでいた雑誌にこんな記述を見つけました。
オフレコだから話せる採用担当の超「本音」
就活サイト経由で自社ページにアクセスすると、どの学生が何回アクセスしたか実はお見通し。回数が多く、一定大学レベルの学生に対してだけ、会社案内を出す。会では面接テクニックを教える。ぜひ入ってほしいので(多数)。
週刊 東洋経済 2010年 11/13号 p.56

眉唾な噂ですけどね。
ここでは就活サイト⇒各社の採用サイト、という話しをしているようです。しかし普通に考えれば、就活サイト経由のログインだけをカウントして、直接に各社のサイトを見た回数をカウントしない訳が無いでしょう。なのでここでは「採用担当の方は、自社サイトへのログイン回数を見ているのかも」という噂だと捉えます。(ちなみに、就活サイトを経由しないとログインできない会社も存在します。そういう会社の事を言っているのでしょうかね?)

ログイン回数を1つの指標として採用するのは別に良いのですが…。今回はその数字には意味が無いですよ、という事を証明してみようと思います。


■いくつものサイトへ一気にログインする手順

01.「Autol」をダウンロードし適当に展開しておく。
02.「Proxomitron」をダウンロードし展開する。ダウンロードするのは「ProxN45j.zip」「proxcert.zip」「openssl-0.9.8-mod-rev1.zip」。本体のProxN45j.zipを展開したら、同じディレクトリにproxcert.zipとopenssl-0.9.8-mod-rev1.zipの中身を入れておく。

○非sslページ
03.この文章では各企業の採用ページへのログインを想定していますが、とりあえずサンプルとして、マイナビにログインしてみましょう。autolを起動したら、URL欄に「http://job.mynavi.jp/2012/」と入力し、「受信」をクリック。
04.「名前」欄にnameとかpassとかそれらしいのが出てくるまで、「送信先」欄からアドレスを選んで探す。(この場合はhttp://job.mynavi.jp/12/pc/NSLoginMLogin.doを選ぶ)
05.「memberId欄」と「password欄」に自分のIDとパスワードを入れます。「値」の欄の右側に「編集」ボタンがあるので、それをクリックして正しい値を入れる。
06.「オプション」欄に暗号化オプションがあるので、一応チェックを入れておく。
07.右下の「テスト」ボタンで動作をテストできます。正常に動いたら「作成」をクリックして保存。それをブラウザで開いてみて、ログインできるか確認しましょう。

○sslページ
08.次はsslページのログイン方法です。sslページの場合、autolとProxomitronを起動します。
09.autolの「プロクシサーバー」にチェックを入れ、中央の欄に「127.0.0.1」、ポートは「8080」を入力します。(Proxomitronは起動しておくだけで良い)
10.後は非sslページの手順と同じです。

※sslのサンプルとしてリクナビにログインしてみようとしたのですがダメでした。このように一部のサイトでは正常にログインできないです。上手く行かなければソース読んでちょっと修正すれば大丈夫な場合もあります。

○共通
11.この手順を繰り返し、ログインしたいサイトすべてについてhtmlを作成する。(よくわからない名前しか表示されない場合は、htmlコードを見て、該当するinputタブのname属性を確認しましょう。)どんな物が生成されるかは、古い資料ですがこちらなどをご覧ください。サイト毎に必要な情報を生成し、IDやパスワードのinputタグの属性をtype="hidden"にしてログインさせています。
12.全ての企業についてファイルを生成したら、適当なフォルダにまとめて入れておきましょう。
13.適当なhtmlを作り、iframeで先ほど生成したファイルを開くように指定する。例えばこんな感じ。(ホント適当ですみません。アドレスとか適宜書き変えて下さい)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
	<meta http-equiv="Content-Style-Type" content="text/css">
	<title>自動ログインhtml</title>
</head>
<body>

○○社
<p><iframe src="ログイン先/○○社.html" width="800" height="150">○○社</iframe></p> 

××社
<p><iframe src="ログイン先/××社.html" width="800" height="150">××社</iframe></p> 
以下、同じようなのが続く。

</body>
</html>

14.今作ったhtmlをブラウザで開くと、全てのサイトに自動的にログインできます。あとは、ブラウザを起動した時このhtmlを開くように設定しておけば、毎日ログインしてる人のように見せる事ができます。(実際にやってみた所、autolだけに頼ると半分程度しか自動ログインできませんでした。ソースコードまで読んで修正すれば、9割のサイトでログインに成功しました)

■まとめ
・簡単にツールで対応できるので、ログイン回数には何の意味もありません(ログイン回数が多い事と熱心な事の間に相関はありません)
・こんな方法でログインしても何の意味もありません。
・きちんとサイトの情報を読みましょう。
・こんな事してないで勉強しましょう。

■最後に
・前提を拡大解釈し過ぎたかな・・・。
・今回はツールに頼った方法をとりました。自分でプログラミングできる人ならばもっと良い方法があるでしょう。
・就活サイトの中には、ログイン直後のページにログイン回数を表示しているサイトもあります。なぜその数字を就活生に対して見せる必要があるのか、理解に苦しみます。
・生成したファイルは厳重に管理して下さい!、適当に管理するとあなたの就活が人生ごと終了する可能性があります。

iPhoneアプリのバージョンアップでリジェクトされた

アプリのバージョンアップでリジェクトされてしまいました。でもちゃんと理由を教えてくれるのはありがたい。

理由を書いたメールによれば、
「2.5 Apps that use non-public APIs will be rejected」
に引っ掛かっているとのこと。どの非公開APIかもちゃんと書いてあり、「webView:createWebViewWithRequest:」を使ったのがいけなかったようです。

iPhoneアプリのwebViewでtarget=_"blank"が開けない問題に対処する為に導入したこれが原因のようです。
sonson@Picture&Software - [iPhone SDK] Avoid target="_blank" problem

簡単にtarget=_"blank"問題に対処できたので、素晴らしいハックだったのですが、残念。1年以上前の情報でしたからね。とりあえずはこの部分を削除し、target=_"blank"問題を無視する形で再度バイナリを提出しました。これで通れば良いのですが・・・。

○参考
アプリのリジェクト基準(英語)⇒App Store Review Guidelines - App Store Resource Center アプリのリジェクト基準(翻訳して下さったもの)⇒fladdict ? iPhoneアプリ審査での111の禁止項目(意訳)
このサイトについて
Webアプリケーション開発のことや、iPhone・Android向けアプリ開発の話題が中心です。
管理:えんたつ twitter: @tattyamm
mimage
一部のリンクにはアフィリエイトが含まれます。
カテゴリ別アーカイブ
RSS
プログラミング本
古い本含めてメモです
iPhoneプログラミングUIKit詳解リファレンス iPhoneプログラミングUIKit詳解リファレンス Android Layout Cookbook アプリの価値を高める開発テクニック パーフェクトPHP (PERFECT SERIES 3) JavaプログラミングBlack Book 2nd Edition (Black Bookシリーズ)
表記
当サイトではGoogle Analyticsを使用しております。詳細はこちらを御覧ください