Eclipse以外のPHPデバッグ環境を試みる

PHPのデバッグをやる覚悟でEclipseを導入したものの使いこなすまでには相当敷居が高い.WordPressをXOOPSのモジュールとして使うのではなく,完全に独立な外部アプリとして使うことも考えてみた.すでにテント村ではそのような使い方をして成功している.一つのサイトに複数のWordPressを導入することは不可能ではない.現行サイトではWordPressはサーバー側に導入されているものを使っている.これをやりくりして2つのブログを運営することは可能なのではないか?おそらく従来の屋根裏部屋で蓄積したデータベースを再利用することはできるのではないか?と思われる.しかし,ここでもたついているとWordPressだけで時間を使い切ってしまいかねないので,WordPressモジュールを作り直してもう一度試してみたい.

というのは,現在起きているエラーはWordPress内のコードで発生しているが,現行のWordPressは本来PHP7に対応しているはずなのだから,このようなエラーが発生していること自体おかしいと見なくてはならない.つまり,どこかで手順を誤っているのではないか?と推定されるので,昨日のバックアップに戻って出直すことにしたい.⇒WordPressの最新版 5.3.2-jaとXPressME_Integration_Kit_Ver2.3.6の組み合わせだ.⇒実行した.以下のエラーが出ている.

Error : Error: Call to undefined function mysql_get_server_info()

この関数はhappy_linuxの中で1箇所,xpressmeで5箇所使われている.すべての出現をmysqli_get_server_infoに変えてみる.happy_linuxは対応しているので修正は不要だ.xpressmeでも1箇所は対応済みになっている.修正が入ったのはindex.php, oninstall.php, class-wp-site-health.phpの3本だ.⇒修正したが,まだエラーは続く.

Warning: Use of undefined constant XOOPS_PATH – assumed ‘XOOPS_PATH’ (this will throw an Error in a future version of PHP) in D:\XoopsCore25\htdocs\modules\xpressme\class\config_from_xoops.class.php(56) : eval()’d code on line 1
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in D:\XoopsCore25\htdocs\modules\xpressme\include\memory_limit.php:17 Stack trace: #0 D:\XoopsCore25\htdocs\modules\xpressme\include\add_xpress_process.php(202): xpress_set_memory_limmit() #1 D:\XoopsCore25\htdocs\modules\xpressme\wp-config.php(85): require_once(‘D:\\XoopsCore25\\…’) #2 D:\XoopsCore25\htdocs\modules\xpressme\wp-load.php(37): require_once(‘D:\\XoopsCore25\\…’) #3 D:\XoopsCore25\htdocs\modules\xpressme\wp-admin\admin.php(34): require_once(‘D:\\XoopsCore25\\…’) #4 D:\XoopsCore25\htdocs\modules\xpressme\wp-admin\index.php(10): require_once(‘D:\\XoopsCore25\\…’) #5 {main} thrown in D:\XoopsCore25\htdocs\modules\xpressme\include\memory_limit.php on line 17

このエラーは結局昨日のエラーと同じだ.WordPressのコードが完全にPHP7対応であることは確認済みなので,これらはIntegration Kit内のコードと考えられる.一つづつ潰してみよう.mysql_connectの出現は10箇所ある.mantisに1つ,systemに3つ,あとはxpressmeだ.systemの3つは修正不要と見られる.undefined function mysql_close()になった.mysql_closeは8箇所ある.mantis, sysytem, xpressmeだ.⇒修正して前に進み,「データベース接続確立エラー」になった.wp-config.phpをチェックしてみよう.wp-config.phpではデータベース名,ユーザ名などをXOOPSから引き継いでいるのでコード自体は間違っていないはずだ.おそらく,config_from_xoops.class.php(56)で出されている警告に関係しているもののように思われる.XOOPS_PATHという定数が未定義とされている.

この値はmainfile.phpで定義されている.mainfile.phpは実行されていて出口では定義は確定しているが,config_from_xoops.class.phpが呼び出された時点では確かに消えている.なぜだろう?名前空間が一致していないということなのだろうか?それともどこかでリセットされているのか?admin.phpでmainfile.phpをインクルードするようにしてこのエラーは解消したが,WPの管理画面ではなくSystem Option画面が開いてしまう.こうなるともうデバッグするしかなくなるが…

Eclipseはどうも取っ付きにくい.昔扱ったときにはマニュアルも読まずに使えていたような気がするのだが,現行版のユーザインタフェースにはかなりの疑問がある.あるボタンを押して画面のどこかが切り替わったとき,同じボタンを押すと元の状態に戻るというのが基本だが,Eclipseではボタンを押すとそのボタンまで消えてしまって呆然と立ちすくむという状況に陥ってしまう.「設計思想」が悪い.

別のPHPデバッグ環境を探してみた.Visual Studioでできるという.探すとPHP Tools for Visual Studioというのがあった.現在VSは無償配布されているが,このツールは23,900円.30日間の試用期間があり,それを過ぎてもデバッガ以外は使えるという話だが…いまの作業に使うだけなら,多分30日あればお釣りが来るはずだ.これとは別にVisual Studio Codeというエディタもあった.昔,VSのエディタでHTMLを書いていたことがある.このエディタは一つで数百のプログラミング言語をサポートしているという.ともかく使ってみよう.VS CodeではPHPのデバッグまでできるようだ.Xdebugという外部デバッグツールが必要なようだが,もしかするとこのエディタだけで間に合うかもしれない.

Visual Studio 2017でPHP開発
https://qiita.com/akabei/items/70fafaef7b86afb5a7ec

PHPのデバッグ(ステップ実行)環境を構築してみた
https://yasu404.com/1004/

Visual Studio Code
https://azure.microsoft.com/ja-jp/products/visual-studio-code/

まず,VSCodeから評価してみよう.⇒HTMLエディタとしても使えるが,プレビューは出ない.ダークウィンドウは目が疲れる感じだが,テーマで切り替えることはできる.検索などはメチャ速くていかにも軽い.使い勝手は悪くないが,VS 2017ないしVS 2019でPHPデバッグができるのなら不要かもしれない.

Visual Studio 2019がすでにリリースされているのでダウンロードしてみた.2019/08/14のログには「VS2005からVS2017の変換がなかなか収束しない」とあるが,ソースの修正はすでに完了している模様だ.ただし,例によってOCXのレジストリ登録でエラーが発生する.VS 2017ではコンパイル→ビルドまでは通るが,VS 2015の動作はかなりおかしい.まだ下位のプロジェクトがビルドされていないのに,上位プロジェクトから下位プロジェクトのモジュールにアクセスできないという理由でビルドが止まってしまう…⇒Visual Studio 2019をインストールしたが,動作は2015と同じでビルドが進まない.

どうもVisual Studioの動作が安定しないので,VS CodeでPHPデバッグを試みることにする.⇒atomというエディタがxamppとの組み合わせでよく使われている.atomとVS codeはかなり似ているが,atomの方がよりシンプルだ.この意味ではatomの方が使い易そうな気もするが,VS Codeの方が多機能でより強力に見える.各種言語が最初から備わっているのも便利だ.ということでVS Codeを使ってみることにする.

Visual Studio CodeでPHPをデバッグする方法
https://qiita.com/deux222/items/af75319ece05653c4bb5

PHPプログラミングも快適に! VS Codeの二大拡張機能
https://www.atmarkit.co.jp/ait/articles/1809/11/news028.html

【Windows】Visual Studio Codeを使ったPHP開発環境を整える
https://www.out48.com/archives/2584/

Summary
  • Xdebug installed: no
  • Server API: Apache 2.0 Handler
  • Windows: yes – Compiler: MS VC 15 – Architecture: x64
  • Zend Server: no
  • PHP Version: 7.4.2
  • Zend API nr: 320190902
  • PHP API nr: 20190902
  • Debug Build: no
  • Thread Safe Build: yes
  • OPcache Loaded: no
  • Configuration File Path: C:\WINDOWS
  • Configuration File: C:\xampp7\php\php.ini
  • Extensions directory: C:\xampp7\php\ext
    Instructions
  • Download php_xdebug-2.9.4-7.4-vc15-x86_64.dll
  • Move the downloaded file to C:\xampp7\php\ext
  • Edit C:\xampp7\php\php.ini and add the line
    zend_extension = C:\xampp7\php\ext\php_xdebug-2.9.4-7.4-vc15-x86_64.dll
  • Restart the webserver
  • Eclipseをインストールはしてみたものの…

    Eclipseはすでにインストールされているが,使い方をほとんど忘れてしまった.というか,Eclipseの作り自体かなり変わって(進化して)いるのではないだろうか?ツールバーのアイコンが小さ過ぎてお手上げだ.どこかのアイコンを間違って押したらそれまで出ていたペーンが消えてしまったり…ノートの内蔵ディスプレイとDELLのワイドスクリーンのズーム倍率をどちらも150%に上げることにした.Eclipseのマニュアルは全編英語なのでいまいち全体像がつかめない.使っているうちに慣れてくるということもあるだろうが,どこから始めればよいのか?取っ掛かりがまだ見えていない.Eclipseはちょっと後回しにして,PHPをデバッグしないでできるところまでをまず片付けておくことにしよう.⇒さすがに150%というのは大き過ぎ,125%がぎりぎりというところ.

    昨日WordPressで「ブログ」を設定したことで状況が一変した.もはやエラーは1件も起きていない.pico, evennews, mantisとも問題なく開くことができる.いや,おかしい.QUERYではまだテーブル xoops25.zelkova_wp_blogs 不在というエラーが起きている.⇒状況は変化していない.⇒かなりおかしい.WordPressの管理ユーザは登録済みでサイトもすでにビルドされている.投稿が1件,固定ページが1,コメント1がすでに投稿済みになっている.このWP管理者がデータベースユーザになっていないためだろうか?しかし,警告が出ているのはbabalaboではなく,Access denied for user ”@’localhost’ (using password: NO)の方だ.WordPressのデータベースユーザとパスワードはwp-config.phpで定義されている.

    どうもWordPressのデータベースはでき損なっているようだ.同じ名前のテーブルでprefixが付くものと付かないものがダブっている.zelkovaというプレフィックス付きのものが16個,付かないものが12個ある.wp_usersで見ると値が入っているのは付かない方だ.一度WordPressをアンインストールして作り直してみよう.XOOPSのDBユーザ名などはD:\XoopsCore25\xoops_data\data\secure.phpで定義されている.⇒モジュールWordPressをアンインストールしたが,prefixなしのテーブルは残ったまま.⇒手操作で取り除く.⇒WordPressを再インストールした.今度はprefixなしのテーブルは出現しない.

    しかし,Table ‘xoops25.zelkova_wp_blogs’ doesn’t existというエラーは依然として発生している.prefixなしのテーブルはWordPress Adminでブログを生成したときに作られている.WordPressインストール時には正しく動作しているのだが,WordPress AdminでXOOPSと縁が切れてしまっているようだ.GIJOE版ではこれを使えと指示されたD:\XoopsCore25\xoops_lib\libs\altsys\include\altsys_functions.phpは元のバージョンに戻した.

    清水へ祇園をよぎる桜月夜 こよひ逢ふ人みなうつくしき

    91439389_1802957206506737_1780176533017591808_o

    就寝時間が毎日後方にずれて一巡し昨日は夕方6時ころになったので,久々に街に出かけた.入り口ドアは開け放たれ,店内にはアルコール消毒液も設置されている.当市でも発症者が出ているというのをそこで始めて聞いた.エジプトナイル川クルーズの参加者だったようで,同行したその人の妻も発症している.帰国後の一定期間JRを利用して東京まで通勤しているので,この一例から見てもすでに市中感染→感染爆発のフェーズに遷移したものと考えて間違いない.いまさら,「首都封鎖」したとしても手遅れだ…さて,いよいよ本作業に戻らなくてはならない.

    どこまで進んでいたのか?現状をチェックしてみよう.Apacheを起動してlocalhostにアクセスしてみる.管理人IDでログイン→エラーが出た.

    image

    Please come back soonをクリックして管理画面には入れる.

    image

    管理画面の16個のアイコンはすべて問題なく開けた.一般ユーザとしてログインしてみよう.確か,一人くらい登録してあったはずだ.しかし,覚えていない.MyAdminでデータベースにアクセスしてみよう.データベースの名前はxoops25となっている.ユーザ登録されているのは管理人だけだ.管理画面の最初のページでView Accountをクリックすると上と同じエラーが起き,Come back soonで元の画面に戻ってしまう.以下のようなエラーが起きている.

    Error : Error: Call to undefined function esc_sql()

    None All Errors (28) Deprecated (4) Queries (44) Blocks (3) Extra (2) Timers(5)
    SYSTEM WARNING: Unknown: Failed to write session data using user defined save handler. (session.save_path: C:\xampp7\tmp)

    Errors(28)を開くと,以下の項目が赤字になっている.

    0.000271 – SELECT * FROM wp_blogs
    Error number: 1146
    Error message: Table ‘xoops25.zelkova_wp_blogs’ doesn’t exist
    0.000457 – SELECT * FROM modules WHERE dirname = ‘altsys’

    また,最下部には上と同じ SYSTEM WARNING の行が赤字で表示されている.確かにデータベースにはxoops25.zelkova_wp_blogsというテーブルは存在していない.WordPressで使っているその他のテーブルは備わっているようだ.これはWordPressでまだ「ブログ」を一つも作っていないためではないかとも推定される.HTMLエディタBlueGriffonを(間違えて)起動したら下記のエラーになった.

    image

    原因はわからないが,もう一度ダウンロードして再インストールした.現在モジュールは下図のように13個インストールされているが,うち,pico, evennews, maitisの3つではボタンをクリックしてオープンした時にエラーが発生している.

    image

    evennews, mantisは最悪の場合は放棄ということも考えられるが,picoは「オンラインマニュアル」で使っているので何とか再生する必要がある.これらの3つのモジュールはデータベースを使っているためQUERYで上記WordPressのテーブルがないというエラーが発生している.もしかすると同じ原因でエラーが起きている可能性があるので,まずWordPressのテーブルエラーから見ることにしよう.WordPressの管理画面からWordPress Adminメニューを選択で以下の画面が出る.

    image

    ユーザ名・パスワードを設定→インストールには成功したが,以下のような警告が出ている.

    Warning: Use of undefined constant XOOPS_PATH – assumed ‘XOOPS_PATH’ (this will throw an Error in a future version of PHP) in D:\XoopsCore25\htdocs\modules\wordpress\class\config_from_xoops.class.php(56) : eval()’d code on line 1
    Warning: mysqli_connect(): (HY000/1045): Access denied for user ”@’localhost’ (using password: NO) in D:\XoopsCore25\htdocs\modules\wordpress\include\memory_limit.php on line 18
    Warning: mysqli_close() expects parameter 1 to be mysqli, bool given in D:\XoopsCore25\htdocs\modules\wordpress\include\memory_limit.php on line 60

    警告は3つある.最初のはXOOPS_PATHという古くなった定数が使われているというものだ.WordPress自体は本来XOOPSとは無関係の独立のアプリだが,XOOPSのモジュールとしてインストールされているので,そのために追加された拡張コードの中で使われているのだろう.つまり,WordPressモジュールが少し古いかないしアップデートされていないことが考えられる.2番目はユーザ名rootでパスワードなしという設定でデータベースへのアクセスが拒否されたことを意味する.これはかなりまずいような気がする.3番目はmemory_limit.php→mysqliの呼び出しで引数が間違っているというものだ.

    ソースコードの修正が必要になる可能性があるので,まずバックアップを取っておくことにする.(今日はまだ始業時バックアップを取っていない)ミニノートのThunderBirdの方もバックアップしておこう.ミニノートではEドライブのTHUNDERBIRD DATAとAppData\rormingのThunderBird,PCではCドライブのxamppとDドライブのXOOPS25を取っておく.いや,違う.xamppではなくxampp7ではないか?⇒その通り.xampp7は731MB,XoopsCore25は84.3MBと思ったより小さい.MySQLもバックアップしておこう.127_0_0_1.sqlはXoopsCore25のバックアップの中に入れておく.このファイルは720KBだ.

    どうもこの辺りまで来るとPHPのデバッグの領域に入ってしまうので,そろそろEclipseを導入した方がよいのではないだろうか?以前一度使ったことがあるが,多分もう少し進化して使い易いものになっているのではないかと期待しているのだが…Eclipse IDE 2020-03という最新版をダウンロード→ネットワークエラーで停止してしまった.⇒今度はうまく行った.Koreanサイトからのダウンロードになった.インストーラを実行してJavaの仮想環境がないというエラーが出る.

    image

    Javaをインストールするためにはネットに接続している必要がある.Eclipseのインストールにもネット接続が必要な場面があるようだ.⇒Eclipseのインストールに失敗した.

    image

    どうもリモートサイトからのダウンロードに失敗しているのではないかと思われる.もう一度やってみることにする.ダメだ.また失敗だ.⇒おかしい.WiFiには接続しているのにネットにアクセスできない.⇒PCを再起動→再インストールで成功した.

    Windows Live MailからThunderBirdへの移行が完了した

    Windows Live MailからThunderBirdへの移行が完了.ThunderBird形式以外の保存形式でフォルダ構成を維持しながらエクスポートすることができないのでこの移行は後戻りできない.ThunderBirdは現在圧倒的なシェアを誇っているが,いつの日かまたThunderBirdから他のメーラに移行しなくてはならない時が来るかもしれない.しかし,そのときになれば誰かがThunderBirdからの移行ツールを作ってくれていることだろう.確かにThunderBirdは現時点における最強のメールソフトだ.WLMには外部ファイルシステムでファイル操作すると論理フォルダと物理フォルダの不整合が発生してしまうなどのさまざまな弱点があったが,TBはそれらをほぼ克服している.TBの優位性の一つとしてフィルタリングシステムが完備していることを挙げておこう.フィルタリングシステムは受信メールを自動振り分けするための仕組みだが,フィルタとフォルダはほぼ一対一に対応していると考えられる.このフォルダをどこに移動してもフィルタリングの動作には影響しない.

    フィルタリングルールを設定することとデータの保存構造(フォルダ構成)の決定は密接に関連している.これは情報管理そのものであり,将来的にはAIが全面的にサポートするように進化することになるだろう.今回の再編成で考慮したポイントをまとめておこう.

    1. 現在アクティブな本人メールアカウントは2つ,それ以外に過去に使っていたユーザ会サイトのメールアカウト(管理人・事務局など),および携帯メールアカウントなどがあるが,内部的には混合して扱う 実体として①プライベート,②馬場研究所,③ゼルコバの木ユーザ会を区分
    2. 返信メールはつねに受信メールと同じフォルダに収容する
    3. 1外部アカウント(サイト)は1フォルダ,1フィルタリングルールに対応する ただし,複数アカウント(from/to)がグループとして認識される場合には1フォルダに収納する
    4. フォルダは受信専用であるかないし送受信両用であるかのいずれかである 受信専用フォルダは外部,送受信を受け持つフォルダは内部として切り分ける ただし,情報配信サイト(外部)のカテゴリには双方向(送受信)のメーリングリストなどが例外として含まれる 自サイト運用に関わるフォルダは内部とする
    5. もっぱら情報配信のみを行う情報サイト(メディア)と営業的サイト(物品・サービスの提供)を切り分ける ただし,NPOは後者に含まれる 情報配信サイトは技術系・学術系・SNS系・その他に区分する
    6. ユーザ登録など情報サイト(外部)との間で交わした契約関係のメールなどは別途内部の「アカウント・利用規約・サポート」フォルダに保管・管理する 「アカウント・利用規約・サポート」ルールに設定できない場合は手操作で移動する
    7. 営業的サイトのうち貨幣的取引を伴うサイトをそれ以外から切り分ける 銀行取引は独立の外部カテゴリとし,それ以外の恒常的実取引サイトは内部(取引先)として位置付ける
    8. 単発的実取引サイトは外部とし,貨幣的取引に関わるメールは別途内部の「発注・請求・支払い」フォルダに記録・管理する 「発注・請求・支払い」ルールに設定できない場合は手操作で移動する 単発的実取引サイトは技術系とそれ以外を区分する
    9. 内部に属するフォルダ(恒常的実取引サイト)ないしその一部ですでに終結しているものはアーカイブに移転する
    10. 障害発生などセキュリティ上の警告を受信するフォルダ(複数)を設置
    11. 独立のフォルダを立てるに及ばない雑多なメールを格納するフォルダを別途(数種)設ける
    12. 現在営業休止中のため,恒常的実取引サイトに該当するサイト(取引先)は自サイト運用に関わるサイトしか存在しない 過去の取引先の一部はアーカイブに保管されているが,FAX時代の取引記録は電子化されていないためペーパーで保管 ⇒ 将来的には電子化
    13. 「アカウント・利用規約・サポート」や「発注・請求・支払い」などフィルタリング ルールを設定できないメールには(散逸を防止するため)★マークを付与しておくことが考えられる ★マーク機能はいまのところまったく使われていない ⇒ 実行した

    さて,次に進む前にログを読み直しながらWindows Live MailからThunderBirdへの移行に際して必要となった作業をまとめておくことにしよう.作業を開始したのは2020/03/15「修理に出していた 2 in 1 タブレットが戻ってきた」からだ.

    1. Windows Live Mail 2012はWindows Essentialに含まれているが,すでにサポートが終了しているため以下のアーカイブからダウンロードしてインストールする http://web.archive.org/web/20170120121901/http://wl.dlservice.microsoft.com/download/F/A/D/FAD48A38-8F81-4DA1-8302-EFAB6FEC4A92/ja/wlsetup-all.exe
    2. microSDにはWLMの保存フォルダを置けない(フォルダが選択できない) 東芝ポータブルHD700GBをミニノート(2 in 1)に接続できない
    3. 古い外付けHDをミニノートに接続してmicroSDからWLM保存データを転送 ⇒ 失敗
    4. 古い外付けHDをメイン機に接続してWLM保存データを転送
    5. ミニノートでWLMの保存フォルダを古い外付けHDに設定
    6. WLMの起動に失敗する:お使いのカレンダーに破損されているデータが含まれているため,Windows Live Mailが強制終了しました.(0x8E5E0408) このエラーはRecordTooBigForBackwardCompatibility:record would be too big if represented in a database format from a previous version of Jet.を意味する
    7. アドレス帳は空になっている
    8. 410MBのMail.MSMessageStoreというファイルを削除 *.chk, *.log, *.sqmファイルをすべて削除した.calendarsというフォルダ(ほとんど空)その他,空のフォルダを削除,拡張子 jfm, jrs, xml およびアカウントデータ以外はすべて削除して起動できた.ちらっと「データベースを復旧しています」を表示したあと,下記を出して停止:Windows Live Mailを起動できませんでした.アプリケーションはWindows Live メール メッセージストアを開けませんでした.現在お使いのWindows Live メール メールボックスデータは,ウィルススキャンプログラムなど他のプログラムで使用されています.…(0x800C0155)
    9. カスペルスキーで外付けHDをスキャン ⇒ 失敗:外付けHDの死亡宣告
    10. ミニノートのUSB3.0コネクタを使って東芝ポータブルHDを接続できた
    11. カスペルスキーで東芝ポータブルHDを完全スキャンする
    12. WLMからGmailにログインできない ⇒ Gmailでセキュリティの低いメーラーを使うオプションを選択
    13. Gmail(IMAP)の受信箱には3545本メールが入っている.ある特定の文字列を検索→すべてのメールを検索しますか?にはいと答えたら「変更を更新しています」のパネルを出したままハング状態
    14. Gmail受信は「フィッシィング詐欺メールの可能性があるメッセージをダウンロードしました」で停止
    15. Yahooメール(POP)にログインできない ⇒ メール管理→IMAP/POP/SMTPアクセスとメール転送で設定を変更 ⇒ メールの設定画面の右上スクロールしないと見えない位置にに保存ボタンがある
    16. カスペルスキーが東芝ポータブルHDのルートキットスキャンを実行
    17. Meryはテキストファイルしか検索しないのでWindows Live Mailの保存フォルダを検索できない ※[エクスプローラ→ファイル→オプション→検索→ファイル名と内容を常に検索するをオンにして検索できるようになった]
    18. ThunderBird 68.6.0 (32ビット)をダウンロードしてインストール ⇒ 小額寄付しようとしたがカードが弾かれた
    19. ThunderBirdのデフォルトのデータ保管場所はC:\Users\babalabo\AppData\Roaming\Thunderbird\Profiles\
    20. Gmailに接続してメールをダウンロード
    21. ImportExportTools NGをインストール
    22. 三メニュー→ツール→設定とデータのインポート→設定→Windows Live MailでWindows Live Mailの設定をインポート
    23. 馬場英治アカウントがダブっている これはWLMからインポートした設定に馬場英治が含まれていたためだ
    24. ツールパネルにImportExportTools NGが現れないので,以下から最新バージョンをダウンロードしてインストールしたが状況は変わらない https://addons.thunderbird.net/ja/thunderbird/addon/importexporttools-ng/?src=cb-dl-mostpopular
    25. WLMメールをエクスポート
    26. 重複ファイル検索削除ツールFileMany Ver2.1.9.1b 64bitをダウンロードしてインストール エクスポートしたWLMファイルの重複ファイル774本を削除する
    27. WLMの保存フォルダをFileManyで重複検査し,38,384本を削除
    28. 重複削除後のWLMをエクスポート
    29. フォルダを選択→右クリックで出るメニューの一番上にImportExportTools NGが出てくる.このサブメニューの中にImportExportTools NGのすべてのコマンドが入っている 
    30. Web上のGmailからエクスポート→Googleドライブに保存(2GB) この操作は相当時間が掛かる
    31. 「フォルダからすべてのemlをインポート(サブフォルダを含む)」でSLMのStorage Folderにあるすべてのファイルとフォルダを直接インポート
    32. 重複していた馬場英治のアカウントを削除
    33. 移行作業中にイレギュラーな状態になっていたフォルダの復旧:この点に関しては2020/03/19に詳しいメモ書きがある
    34. TBには物理的に温存されたすべてのメールが保持されている WLMとTBを完全に同期させるという目標で調整を行う:2020/03/20にこの作業の詳しいメモ書きがある
    35. ヤマダ電機でHDMIの切替器を購入:メイン機・ミニノート・タブレットからワイドスクリーンにビデオ出力できるようにした タブレットをワイドスクリーンに接続して障害が発生
    36. タブレットで①ディスプレイドライバーの更新,②Windows Updateを実行,Windows 10 Version 1909をインストール,③スタートメニュー→Windows管理ツール→メモリ診断を実行→OK,④ハードディスクチェック:スタートボタン→右クリック→PowerShell→chkdisk c: /F,⑤システムファイルチェッカーツールを使用
    37. TBとWLMの同期作業の続き 2020/03/20に手順リストがある
    38. ThunderBirdとSLMを完全に同期させるという試みを断念 Windows Live Mailに別れを告げる
    39. GmailからダウンロードしたファイルをTBにインポート
    40. WMLの2つのアカウントの送受信を停止
    41. TBのYahooアカウントで受信を開始
    42. オプション→詳細→一般→システム統合→Windows Searchによるメッセージの検索を可能にするという選択肢があった ⇒ 設定したが効果はない
    43. フィルタリングルールを追加しながらGmail, Yahooアカウントのメールを逐次ローカルフォルダに設置した新しいフォルダに選別・移動する
    44. ディスク上の受信メールの保存場所はアカウントごとに設定できる ローカルフォルダ,添付ファイルの保存先も独立に設定できる ⇒ これらをEドライブのThunderBird Dataに置く
    45. GmailとYahooの受信メールにフィルタリングを適用する ⇒ Gmailのサーバー上にある大きなフォルダのダウンロードは実行不可 ⇒ 5~600本単位でダウンロードすればスムーズに進む
    46. 相当数の重複ファイルが残っている
    47. TBが保持していたGmailのアーカイブ3個を削除
    48. 現在設定されているフィルタールールの個数は274.これは大まかにこのメーラーに配置したフォルダの数に等しい ⇒ いや,違う.WLMの保存フォルダには520個くらいのフォルダがあり,その一部は今回の移行で削除されているが,少なくとも300個以上は残っているはずだ.従ってフォルダの個数は全体で600個くらいはあるものと推定される

    現在Gmailの受信箱には114通,Yahooには21通入っている.これはおよそ2日分の着信メール数に相当する.現状では1日平均60通~くらいのメールが入ってきているように思われる.テストを兼ねてこれらをアーカイブしてみよう.⇒きれいに配信できた.試しにAVGにアーカイブを仕掛けてみたところすべてのファイルが未分類に移された.うち2本はAVGと無関係だった.TBのフィルタはそのファイルがいるべき場所にいるときでも最後までフィルタを実行してしまうようだ.従って,「アーカイブ」をローカルフォルダ内のフォルダで実行するというのは原則としてあり得ないということになる.しかし,ローカルフォルダ内で一律フィルタリングを禁止するというのも使い勝手が悪い.

    タブレットにApple Softwear Updateの通知が入り,iCloud for Windowsのインストールを進められたので試しに導入してみた.使うかどうかはわからない.

    相応の耐水性能を備えたフィルタリングシステムが完成した

    バックアップを取ってから開始したのだが,フィルターの項目数が昨日より減っている.昨日は始業時に210個あり,就業時には記憶では270個くらいになっていたはずなのに,いま見ると126しかない.なにかやり損なってしまったのだろうか?これはかなり痛い.フィルタログを取っていないので何が置きているのかもわからない.いや,ログを取っていたとしても同じかもしれない…就業時のバックアップというのはないので復元はおそらく不可能だ.⇒いや,焦ってはならぬ.フィルタはアカウントごとに設定されている.昨日の作業はほとんどローカルフォルダが対象だったから,そこを見なくてはならない.あった!272項目になっている.このメーラーではアカウントを越境してすべてのメールに同一ルールを適用するというポリシーになっているのでフィルタ設定ファイルを共有しなくてはならない.そのようなオプションは存在しないから,MAXの設定を他のアカウントにコピーする必要がある.

    ヘッダ部を残して真っ白,ないしすべて白紙のファイルは復元しようがないのですべて廃棄した.このようなファイルが少なくとも2000本.ヘッダ部が残っていればメタデータにはアクセスできる可能性はあるが,無駄な抵抗に近いのですでに破棄してしまっている.文字化けするメールのうち全文が英字で表示されるものは一旦emlファイルとしてエクスポートしてからMeryで開くと読める.ただし,一部が破損している場合もある.このような現象は途中に不可視文字が入っているために起きているようだ.これが攻撃によるものか,エンコード変換の失敗によるものかは判断できない.WLMではこのような現象は起きていなかったような気もするのでThunderBirdへのインポートの過程で起きている可能性が高い.フィルタの最後に無条件で「未分類」に落ちるように仕掛けたつもりだが,以前と同様に月次アーカイブに落ちている.⇒これは多分フィルタのコピーを実施する前に起きていたのではないかと思う.昨夜は動作確認のため,GmailとYahooの両側で「アーカイブ」を実行している.フィルタは前日のものだから当然の動作だ.

    いま,Gmailに11本,Yahooに4本新着メールが入っている.一日に入ってくる量は両側合わせて50本くらいではないか?相当量のメールをザッピングしているので,ダイレクトメールや詐欺師メールを一目で見分けることができるようになった.ダイレクトメールには大概「突然のメールで大変申し訳ありません」などの文言が冒頭にある.英文の「遺産相続話」などは読まなくても「臭い」で分かるようになった.このようなメールはほとんどプレーンテキストだから見分けやすいが,HTMLで整った文書形式になっているものにはかなりやばいものがある.パスワードを要求してきたり,リンクが張ってあるものはアウトだ.タイトルにグーグルサポートなどと入っているので大概の人は引っかかってしまうかもしれない.一つの企業で複数のメールアカウトを使っている場合がある.ドメイン名が同じならよいが,まったく違うサーバーから送ってくる場合がある.これはかなり紛らわしいので止めてもらいたい.

    かなりの本数の正当なメールが迷惑メールに振り分けられているが,これらも「アーカイブ」で振り分ければ一発で処理できる.現時点で月次アーカイブには2本メールが入っている.明らかに「迷惑メール」以外のなにものでもないので迷わず処理できる.⇒いや,少し甘かった.まだまだだ.未分類メール1本目は「しおりさん」からでこれは歴然とした迷惑メールだが,もう一本のtransifex.comは翻訳関係のサイトで一度アクセスしたことがあり,全部で6本あるそのうちの一本はLEARING/AI Scolarに入っているが,残りはアカウント・利用規約・サポートだ.AI Scolarは古いフォルダでいろいろ混在しているのでアーカイブでフィルタを掛けたら空っぽになり,全部未分類に落ちてしまった.

    新たに2つのフォルダOxford, GetSmarterを追加してそれぞれにフィルターを設定し,未分類でそれぞれフィルタリング実行したら,未分類には1本だけが残り,「しおりさん」がどこかへ紛失してしまった.さらに,transifexをアカウント・利用規約・サポートに移動したあと,このフォルダをチェックしたら,中身(アカウント・利用規約・サポート)が完全に空になってしまっていた.何か誤操作した可能性はもちろんゼロではないが,それよりもTBの誤動作の可能性の方が高いように思われる.誤って削除したのならゴミ箱に入っているはずだがその形跡はない.ネットに接続していたのでハックされている可能性も考えなくてはならない.⇒もう一度バックアップに戻ってやり直してみる.

    どうもいよいよ訳が分からなくなってきた.バックアップをコピーして開いたところ,中身がすっかり古くなっている.考えられない!今日のバックアップはSDに同名フォルダが存在していたため上書きになってしまっているが,中身は今日の始業時のレポジトリであることは間違いない.Eドライブにはそれしかないからだ.フォルダサイズを比較すると,バックアップは10.9 GB (11,756,879,703 バイト)でEドライブのコピーは10.9 GB (11,721,892,581 バイト)でその差は34,987,122‬Bもある.後者の方が内容が古いのにサイズが小さいというのもよくわからない.古いフォルダにはゴミが残っているからむしろ大きい方が自然だ.ちなみに作業していた仕掛版は9.31 GB (10,005,859,422 バイト)で一番小さい値になっている.これは今日の作業中白紙ファイルをまとめて削除しているので,そのためと思われる.

    フォルダサイズはエクスプローラ上で右クリック→プロパティから取っているが,この数字もやや怪しい.ファイル数がどちらも1,351,フォルダ数53となっている.実数はもちろんこの比ではない.仕掛版ではその数字が1,084,48となっている.これもかなり解せない数字だ.一度OSを再起動したいのだが,WLMのバックアップがあと30%くらい残っている.もちろん,OSを再起動したからと言って何が変わる訳でもない…⇒再起動 [ファイル数1,351というのは実数だろう.TBではメール単体ではなくデータベースになっているからサイズの割にファイル数が少ないのは当然だ.]もう一度バックアップを取ろうとしたら,ディスク容量であと7.27GBと言われた.EドライブのZELKOVA_2017は154GBあるのでその5分の1くらいを空けてみよう.日付が5の倍数になっているフォルダをすべて廃棄することにする.⇒空き領域は34.4GBになったが,ドライブのアイコンはまだ赤いままだ.これが青くなるまでやってみよう.⇒終わった.93.7GBになった.まず.当面これで間に合うだろう.

    フォルダをコピーした時点ですでにサイズが変化している.10.9 GB (11,756,879,703 バイト)→10.9 GB (11,755,643,234 バイト),差分は1,236,469で約1MBだ.どこでこの差異が発生するのだろう?この数字はディスク上のサイズではなく,論理サイズなのだが…やはり,同じだ.OUTLOOK 2008まで残っている.気になるのはSD上のバックアップ4本のうち3本の「更新日付」がまったく同じ2020‎年‎3‎月‎22‎日、‏‎08:30になっていることだ.もし,これが事実ならすべて同一物ということになってしまう…サイズで比較するとそれぞれ有意に異なるのでそれはないと思われるが…考えられるのは上書きするつもりが,スキップになっていたという可能性くらいだ…今日の仕掛り版をもう一度開いて中身がどうなっているのか確認してみよう.⇒OUTLOOK 2008は消えている.⇒これは当然だ.この版はオリジナルから開始している.問題はアカウント・利用規約・サポートフォルダが空になっているという点だけだ.

    すっかり浮足立ってしまったが,このフォルダにあったファイルはすべて未分類メールに落ちている.どこかで誤ってアーカイブしてしまったのだろう.アカウント・利用規約・サポートの一部にはフィルターで自動操作できるものもあるが,ほとんどは手操作で入れているものだ.中には「元のフォルダ」に戻ってしまっているものもあるだろう.まぁともかく紛失した訳ではないのでよかった.このまま続けよう.⇒どこから紛れ込んできたのだろう?「ちはるだよ~」などのファイルが入ってきている.⇒大体始末が付いた.⇒この時点でバックアップの取り直しをしておこう.AI-Scholar, GetSmarter, Online Oxford Programmesのフィルタには少し混乱がある.⇒msgFilterRules.datをエディタで開いて修正した方が確かだ.

    当初最初の2つはAIに送り込んでいたのだが,OxfordとGetSmarterが関連していることに気付いて修正したにも関わらず,元のフィルタを残したままになっていた.これを外すとAIフォルダは使われていない状態になるので,削除しておいた方が間違いないだろう.いや,AIというのはフォルダ名ではなくフィルタ名だ.フィルタ設定ファイルを毎回コピーして手動で同期を取るというのも結構厄介だ.フィルタパネルを開いて使うときにはアカウントを切り替えることができるので,注意すれば使えるが「アーカイブ」ボタンで一括処理しようとすると,その場によって適用される設定ファイルを自動選択するので予期しない動作になる可能性がある.「アカウント・利用規約・サポートと発注・請求・支払い以外のフォルダでは手操作でファイル移動を行わなってはならない」という原則は徹底されなくてはならない.

    おかしい.また未分類に158本もファイルが入ってきた!また,いつものアカウント・利用規約・サポートだ.しかも,削除したはずの「ちはるだよ~!」などまで復活してきている.フィルタは修正の入った最新のものだ.アカウント・利用規約・サポートのファイルがすべて未分類に落ちるためには,このフォルダを全選択→「アーカイブ」を実行しなくてはならない.それ以外にこのようなことが起こるとは考えられないのだが…アプリケーションを終了する手順の問題だろうか?メニューから終了するときはフィルタパネルも閉じられるが,クローズボックスで閉じたときにはパネルは開いた状態になっている.つまり,バックグラウンドでアプリがまだ走っているものと考えられる.ここでパネルを閉じて次にタスクバーから起動すると,仕掛りの作業をフラッシュしないで立ち上がってくるのではないだろうか?⇒チェックボタンでクローズするのはリスクがあるような気がするので,必ずメニュー→終了で閉じるように習慣付けよう.

    タイトルにFw:が付いた転送メールは暫定的に馬場研究所に落ちるようになっている.このようなメールは何かの都合で念のために自己宛に送信されたものと思われる.通常はオリジナルがどこかに存在すると考えられるので廃棄してよいのかもしれないが,置き場所を作って残しておくことにしよう.ダイレクトメールや破損メールを保管しているBAD LETTERSというフォルダがあるのでそこに「転送メール」というフォルダを作った.⇒これで大体収まったのではないだろうか?水も漏れないというほどの完璧な布陣にはなっていないと思われるが,それ相応の耐水性能は確保できたのではないかと思う.企業によっては複数のメールアカウントを使って,ユーザ登録や受注・請求などの処理を配信サービスと別建てにしているところもあるが,すべて共通のアカウントで済ませているところもあるので,どうしても手操作が必要な場面がある.フィルタで本文を検査できればよいのだが…

    メールは通常スマホでチェックして返信するときのみミニノートを使うということになっている.ここまで整備してきたが,実際にはThunder Birdを開く時間はあまりないのではないかと思う.長文を読むのならタブレットの方がむしろ適しているかも知れないし…タブレッtやスマホでチェックできるのはもちろん,サーバー上のメールだけだ.細かい手直しはあちこちあると思われるがミニノートの整備は一応ここまでとして,また開発機の本作業に戻ることにしよう.どこまで動くようになっていたのか?忘れてしまった.⇒ユーザ会関係のメールはもう少し整理しておく必要があるかもしれない.現在,最上層のゼルコバの木ユーザ会に入ってきているメールがある.少なくとも現在フォルダ内にあるメールだけでもフィルタリングできるようにしておこう.

    いくつかのフィルタを新設したが,ほとんどはすでに設定済だった.ゼルコバの木ユーザ会の順位を未分類のすぐ上まで下げて通った.⇒1件だけ未分類に落ちたのがある.SNSフォルダのトップに入っているメールがある.⇒SNSに直接入ってくるフィルタは存在しない.「その他」を入れておくボックスが必要だ.⇒Miscellaneousとしておこう.WEB TECHのトップには8本入っている.この位置を指定するフィルタは存在しない.⇒手操作で入れたものだ.この種のメールはMiscellaneousでよい.⇒今度は月次アーカイブに新着が302件も出ている.⇒数字は付いているが中身は空.ただし,数件の誤配はあった.

    これからは「未読」の山が積み上がることは金輪際発生しない!実に清々しい気分だ

    始業時バックアップを取ったので,昨日の続きに掛かることにしよう.フィルターに設定されているルールは210個になった.未分類のファイルはOUTLOOK 2008と月次アーカイブにそれぞれ5000通余り残っている.OUTLOOK 2008を片付ければフィルタはほぼ完璧なものになるので,月次アーカイブではそれを単純に適用するだけでよい.OUTLOOK 2008にはフォルダが27個ある.⇒Outlook 2008は完了した.月次アーカイブには1999~2020までの21個のフォルダがある.⇒分類されなかったメールはダイレクトメールに落ちるようにした.まだ3254本残っている.内容が空のメール,内容・ヘッダともに空のメール,破損して文字化けしてしまうメールが相当量発生している.どうも日本語以外の漢字圏のメールに破損が多発しているように思われる.特に簡体字が入っていたと思しきメールはほとんど読むことができない.

    完全に白紙のメールと内容のみ白紙のメールはすでに廃棄しているが,アドレスが読み取れるものがあればどの辺りのメールか確認しておこう.繁体字でもタイトルが読めないものがある.これらは「破損メール」として区分しておく.ロリポップ!からのメールでも読めないものがある.破損ではないがエンコードの関係ですべて英字のまま表示されている.⇒やはり,どこか壊れているようだ.一瞬ちらりと漢字・仮名混じりで表示されて,また戻ってしまった.

    終わった!完璧とは言わないが,まぁ,満足できる仕上がりになった.受信箱に入っていたメールは「アーカイブ」ボタンを押すだけで一瞬のうちに跡形もなく消えてしまう.もう,これからは「未読」の山が積み上がることは金輪際発生しない!実に清々しい気分だ.一行も読まずに「読了」ってそんなのありですか?もち,それでよいのだ!あとから想起できなければ,本を読むことの意義の大半は失われる.しかし,後日検索が可能なら,それはほぼ「記憶していること」と等価と言える.つまり,一行も読まずに読了することが可能だ…いや,もちろんタイトルくらいは目を通しているが,それで十分読み切っている.

    ゴミ屋敷のお片付けもだいぶ進んでかなりきれいになった

    ThunderBirdの使い勝手のよさで際立つのはフィルタリングの設定とその適用だ.メールのアドレス欄ないしタイトル欄で右クリック→フィルターの作成で開かれるフィルタの設定パネルではすでに条件式の中にそのアドレスないし語句が取り込まれているので,移動先フォルダを指定するだけの手間で新しいフィルタを1個追加することができる.現行ではアーカイブ時にフィルタリングを実行するように設定しているので,(複数)ファイルを選択→アーカイブで一発でメールの振り分けが完了する.これを手操作で行っていたときには,ファイルを移動するときに間違って別のフォルダに落としてしまったり,アドホックに適当な場所に放り込んだりなどのことが起きていたため,一つのフォルダの中に混在している誤配置率は20%くらいあったのが,100%完全な振り分けができるようになった.いかに人的操作がいい加減なものであるかを思い知らされた感じだが,まだ完全に自動化できていない部分はある.

    現行ではいくつかの特殊フォルダには手操作で移すしかない.たとえば,「アカウント・利用規約・セキュリティ」や「発注・請求・支払い」などだ.それ以外はすべて発信者ないしタイトルで完全に機械的に分類できる.欲を言えば,「返信先」や「本文」も条件式に付け加えたいし,できればAND・ORの混在した条件式も使いたいところだが,そこまでゆくとAIにかなり近いものになる.実際,フィルタリング機能はルールベースのエキスパートシステムのプリミティブな形態と言えないこともないから,発達すればAIになってもおかしくない.実際,わたしがプログラマとして独立したあと単発で受注金額1000万円を超えた最初の案件は某商社のテレックス自動配信システムであり,そこでやっていたことはこの受信メールフィルタリング以外の何ものでもない.(そこでは本文冒頭を読み込んで振り分けていたが…)

    さて,このあとどうやって進めてゆくべきか?現在設定されているフィルターは133個ある.これはつまり,新しいフォルダを133個作ったことを意味しているが,まだカテゴリ化も階層化もされていない完全にフラットな単層構造だ.この新興ブロックと古いレガシーブロックを架橋しなくてはならないのだが,手順としてはレガシーブロックのメールをフォルダ単位にフィルタリングしながら順次新しい区域に移転してゆくというのが確実なのではないかと思う.古いブロックにはこれ以上改変されないような古層とも言うべき部分もあるが,大概は相当な混在が発生しているので,基本的にはすべてフィルターを通す必要がある.

    メールの振り分けは基本的に通信相手で区分することになるが,複数の通信相手とのメールが混在し,それらを時系列のスレッドとして見たい場合もある.TBのクィックフィルタ機能はこのような場面にも役に立ちそうな気はするが,複数の担当者とのやりとりが発生する場合などには,個人別にメールを振り分けるより相手先企業やプロジェクト単位で分類した方がよい.最終的な構造を可視化するためにまず,新層に以下の7つのカテゴリを設けておくことにする.

    1. ジャーナル(政治,経済,IT,その他情報)
    2. 政治ブログ(国内,海外)
    3. ウェブ(銀行,マーケット,レンタルサーバ,SNS,その他サービス)
    4. グラフ理論(メールマガジン,研究者)
    5. 馬場研究所(開発,バグ管理,セキュリティ,取引先,会計)
    6. ユーザ会(広報,サポート,会員管理,会計)
    7. プライベート(知人)

    通信相手方には大きく分けて,①受信のみの単方向通信先(オンラインジャーナルなど),②送受信のある双方向通信先(知人,取引先など)の2種がある.フィルターのルールでは参照すべきメタデータが①差出人の場合と②差出人または宛先,Cc,Bccのように異なっている.上記1~3は①単方向,4~7は②双方向に大別される.1~4は「アーカイブ」の中に置き,5,6,7はアクティブなブロックとしてローカルフォルダの直下に置くことにしよう.一応始業時バックアップとしてTHUNDERBIRD DATAをmicroSDにコピーして開始する.

    瓦礫を拾い集めて城壁を再構築する

    ThunderBirdは心強いバートナーとして長く付き合えるような気がしているが快適な作業環境を確立するためにはまず,長い年月の間に積み上がったGmailのパイルを崩さなくてはならない.作業はある意味着々と進んでいるが,問題が無いわけではない.一部フォルダでGmailからローカルに移動できないケースが起きている.メールの移動をフィルターを使って実行しても,メニューから「フォルダに移動」を実行しても,さらにフォルダ内のメールを全選択ないし部分選択して別フォルダにドラッグ&ドロップしても動かすことができない状態になっている.原因は本数が多いため転送量の関係で何かしらの(通信経路的な)トラブルが生じているのではないかという気がする.IMAPではサーバー側と同期を取らなくてはならないのでそれがネックとなっている可能性がある.

    どう対処すればよいか?フォルダ名が英字のフォルダは発信元が単一の大きなフォルダが一つ,混在したフォルダ一つを残すだけという状態になっている.それぞれ4750本,45本入っている.いや,もう一つ残っている.中が空っぽなのに削除できないというフォルダだ.このフォルダが削除できない理由はわからないが,Web上で操作できるかどうか見てみよう.⇒このフォルダはすでにWeb上では消えている.このフォルダはしばらく放置して小さい方のフォルダを先に片付けることにしよう.

    片付いた.空のフォルダはGmal上には存在していないので,ここにメールを移動しようとしても元の位置に戻ってしまう.大きな単一フォルダにフィルターを掛けたところ,Gmailとの接続が切断されてしまった.日本語フォルダフォルダ名を持つフォルダの方に移ることにする.

    ほぼ片付いたが,大きいフォルダが2つ残っている.日経ビジネス(11157)とCNET Japan(4935)だ.分割すれば移動できるのだろうか?⇒小さいポーションなら大きいフォルダの中でも実行できるようだ.今すぐ実行→停止ボタンが表示されるまでに時間が掛かっている可能性もある.⇒せめて砂時計でも出してもらえるといいのだが…一度だけ下記のようなパネルが出たが,完了できた.フィルタの数は全部で126個になった.アーカイブに入っているメールだけで23,295本ある.

    image

    要領は,大きなフォルダにフィルタを1本掛けるのではなく,5~600本くらいの比較的小さな単位でファイルを選択し,「アーカイブ」を実行して全フィルタを適用するというのが一番速く確実に完了できる.まとめて実行する単位はもっと大きくてもよいが,おそらくリザーブしているメモリサイズが限界になっているために限界がある.もちろんIMAPで同期を取るためのトラフィック的な制限というのも影響する.再起動すると状態が回復する場合もある.⇒Gmailのダウンロードは完全に完了した.Webにはもはや新規受信メールしか存在しないという状態になっている.これで「メールの読み込み」に要するオーバーヘッドは完全に解消した.さて,このあとどこまでやるか?というのが問題だ.

    ネットから遮断されていた2016~2018年の前後で大きな断絶がある.それ以前のデータは大きく破損したまま放置状態になっている.2018年以降の分に関しては一応ここまでで整理できたと言ってよいが,それを 2016年以前のデータに架橋して地続きのものとしなくてはならない.

    蓄積された情報を活用するためには「検索」が機能することが最重要なポイントだが,その点がThunderBirdに移行してもっとも気がかりな部分だ.TBの内部にあるメールはGrep機能のある検索ツールでもエクスプローラの検索でもアクセスすることができない.試みにTBの検索ツールでローカルフォルダ内の全文検索を仕掛けてみたが,どうしようもない程遅い.ただし,TBの「クイックフィルタ」というのは相当高速でこれなら十分実用になると思われるのだが,使い方がまだよくわからない.

    検索条件は特に何も指定せず,ただ与えらればキー文字列を無差別に適用して検索しているようだ.ヒットしたメールのタイトルをクリックするとそれに関係したスレッドをツリー後続で表示することができる.これもかなりおもしろい.検索結果は「関係者」と「フォルダ」で絞り込むことができる.しかし,「馬場 英治」で検索して628通しかヒットしないというのはやや疑問がある.多分,タイトルと本文しか検索していないものと思われるが,それでも少な過ぎる.ヒットしているのはほとんどGmailのアーカイブばかりだ.実用的に使うためには,Gmailのアーカイブはすべて外に出すしかないかもしれない.また,WLMからインポートするまえに重複ファイルの削減をやっているはずだが,どうも相当量残っているような感じだ.重複ファイル検査を重複がなくなるまで繰り返す必要があったのではないだろうか?TBのメールは単体ファイルではないので,もはや重複検査ツールを使うこともできない.

    もし,どうしてもというのであれば自分でプラグインを開発しなくてはならないということになる.そこまではさすがに手が回らない…ともかくここでは割り切ってGmailをすべて外に出してしまうことにする.Gmailのアーカイブは1階層のフラットな構成になっているので,emlとしてエクスポートすることができる.ここでThunderBird Dataのバックアップを取りたいのだが,すでに8GBを超えているのでEドライブには入らない.⇒microSDを使うことにする.microSDがドライブとして認識されるのなら,ここを使うのがもっとも早いのだが…ThunderBirdから見えているかどうかチェックしてみよう.⇒いや当然ながら見えている.microSDとUSB3.0はどちらが速いのだろう?⇒microSDはUSB2.0とほぼ同等の60MB/S程度だ.USB3.0は2.0の十倍程度速いと言われているので段違いということになるのだが…ともかく試してみよう.

    アカウントごとに保管場所を指定する必要があり,さらにローカルフォルダの位置を指定するため3回再起動が必要になる.最後のローカルフォルダの設定→再起動でエラーが2つ出た.一つはアドレス帳不在,もう一つは何やらファイル名が長過ぎるというエラーだ.⇒アドレス帳には今のところ一人しか登録されていないが,読み込めている.TBは個人用アドレス帳と記録用というのを持っているが,どう使い分けるのだろう?

    さすがにGmail2020(48003)を読み込むのには少し掛かるが,Gmail2016(5797)くらいならすぐに出る.選択したメールは瞬時に表示されるので,実用的にはこれで十分ではないかと思う.Chromeのダウンロードフォルダも指定できるし,Cドライブのユーザフォルダもほとんど外部ドライブを指定できるようなので,Cドライブの代替として十分microSDを使うことができるのではないだろうか?microSDにはまだ200GB以上の空き領域がある.⇒さすがに,検索を掛けるとかなり効くようだ.10倍より遅いかもしれない.これは伝送速度というよりドライブのアクセス速度の差かもしれないが…ちょっと使い物にならないと思う.Gmailを取りに行っているのではないからここまで掛かるというのは問題だ.というか,行ったきりで返って来ない.⇒やっと出た.検索結果は同じ628件だが…⇒やはり,戻すことにしよう.microSDはせいぜいバックアップに使うのが関の山だ.無線HDの導入も考えていたが,WiFiの伝送速度はさらに遅いので,かなり考えものだ.結局USB3.0で接続するHDが最速ということになる.

    Gmailのアーカイブを一度エクスポートしてから削除しようとしているのだが,どうもあまりうまく行っていない.48011本入っているGmail 2020はemlでエクスポートして36397本になってしまった.5799本のGMail 2016は612本しか生成していない.Gmail 2017(4973)は0でしかもSTOPボタンを出したままだ.どうも何かおかしい.emlで出力するのが苦手なのだろうか?それにしても具合が悪過ぎる.一旦エクスポートを中止して出直そう.⇒今回は単純な標準的エキスポート方式を採用した.これ以外の方法ではインポート不能なので意味がない.処理は単にファイルを書き出すだけなのであっという間に終わってしまう.3つのフォルダが入っているフォルダをZIPでエクスポートするというのもやってみた.⇒Gmailのアーカイブをすべて削除した.

    フィルタから漏れて月次アーカイブに入っているメールがかなりある.おそらく,すべてのフィルタが整備される前に処理されたためではないかと思う.もう一度フィルタを通してみよう.確かに動かないファイルもある.おかしい.フィルタが1件を残して完全に空になっている.⇒フィルターはアカウントごとに独立に管理されている.ローカルフォルダには独自のフィルタリストがある.フィルタの完成型というのはGMAILにしかない.これを分配する必要がある.⇒月次アーカイブをフィルタリングする前に最終的なフォルダ構成を固めておいた方がよい.ファイルのフォルダ間移動は思ったより時間が掛かる.フィルタの最後に未分類というのを置いて無条件でそこに移動するようにしておこう.いや,アーカイブで移動しているのだから,月次に必ず入るはずだ…⇒BIGLOBEフォルダが消えている.フィルタがあるのだから,作ってあるはずなのだが…ときどき下記のパネルが出る.

    image

    フィルタリングはあとでやり直すことができるので,おそらくマルチスレッドで処理しているためリソースの取り合いになっているのだろう.「うまくいかないときは止める」というのがTBのポリシーのようだ.TBの動作の方ががWLMよりも安定しているというのもこのストラテジーの効果かもしれない.つまり,コミットメント(動作の完結)を強く意識した作りになっている.

    Gmailの整理が半分くらいまで進んた

    Windows Live MailからThunderBirdに完全乗り換えという方向に方針決定し,フィルタリングルールを追加しながら受信メールの整理を行っているところだが,一つ手順を間違えて間違えてしまったようだ.昨夜相当長時間を掛けて作ったフィルタリング設定がすべて消えてしまった.これはおそらく受信メールの保存フォルダをThunderBirdのデフォルト設定から変更して外部HDに保存するようにしたためと思われる.この設定変更は前に一度実施しているが,なぜか元に戻ってしまっていたため再設定しているので元のフォルダと同期を取る必要がある.⇒デフォルトの保存場所からデータをコピーして復活するかどうかを見てみよう.⇒ダメだ.データはすべてコピーしたつもりだが消えている.

    どうもこの設計はあまりよくないような気がする.アカウントごとに受信メールの保存先を設定できるようになっているが,デフォルトの保存場所を見てみるとそれ以外のかなりのフォルダとファイルに紛れてしまうような場所に分散している.大元のプロファイルフォルダごと移設できればよいのだが,このフォルダは移動できないことになっている.受信フォルダを外部に置く理由はCドライブの負荷を軽くすることと,バックアップが容易にできるようにすることだが,これらをプロファイルフォルダから切り離すとどうも碌なことが起きない.ローカルフォルダは外部に持ち出せるので,むしろそれだけを外部フォルダとしそれ以外はThunderBird直下に置いておいた方が無難であるような気がする.

    メッセージフィルタは復元でききた.msgFilterRules.datはC:\Users\babalabo\AppData\Roaming\Thunderbird\Profiles\jieemox4.default-release\Mail\pop.mail.yahoo.co.jpではなく,pop.mail.yahoo.co-1.jpに入っていた.つまり,ThunderBirdは何らかの設定変更が起きると,受信メールフォルダを追加して追番を付するような動作になっている.ちなみにローカルフォルダはPOPメールアカウントの受信メールフォルダと同位置に配置されている.現状ではローカルフォルダと受信メールフォルダは離れた位置にあるが,同じフォルダに移動しておこう.⇒東芝ポータブルHDが満杯になってしまった.このドライブはこれから常設ドライブとして使わなくてはならないので大胆に削減しなくてはならない.外付けHD全バックアップ 115GB 2013-01-30を破棄できれば115GB一挙に空くことになるが,このドライブはすでに廃棄してしまったので当面は温存されなくてはならない.

    東芝HD まとめ 545GB 2020-03-19は545GBを占めているが,このフォルダに入っているのはすべてゼルコバの木関係なのでいま直ちにという訳にはゆかない.あとはWLM→TBへの移行に関わるものだけだ.WLM→TB 移行 2020-03-20だけで7.31GBあるのでこれだけ削減できれば当面は切り抜けられるが,廃棄できるだろうか?今の作業が失敗したときのことも考えなくてはならない.データ的には廃棄できると思う.現在のTBにはすでに復元可能なすべてのデータが含まれていると考えられるからだ.TB自体は複数バックアップされている.

    ローカルフォルダのパスを変更して再起動でエラーが発生した.

    image

    ローカルフォルダの内容もかなり悪い.ほとんどのフォルダが空になっている.ARCHIVES.sbdフォルダの内部を見るとデータは入っているように見えるのだが…⇒操作を誤っていた.検索ボックスが作動していた.⇒一応昨日の最終形に戻せたのではないかと思う.⇒問題なく動作しているようだ.一つだけ気になるのはGmailの受信メールフォルダの並びにGMAIL.sbdというフォルダが作られている点だ.この中にはINBOXが入っている.このフォルダは不要というより,間違って作られたものではないかと思うのだが…Gmailの受信ボックスには現在4056(725)本が入っている.⇒これを外しても問題なく受信箱は開ける.

    もう一つこのフォルダに入っているはずの添付ファイルの置き場所ATTACHMENTが消えている.⇒追加した.アカウント設定でそれぞれのフォルダパスを確認しておこう.

    1. GMAIL  E:\THUNDERBIRD DATA\GMAIL
    2. YAHOO  E:\THUNDERBIRD DATA\YAHOO
    3. LOCAL HOLDER  E:\THUNDERBIRD DATA\LOCAL FOLDER
    4. ATTACHMENT 

    添付ファイルの保管フォルダを指定する場所がわからない.オプション→アカウント設定には入っていない.オプション→添付ファイルというメニューが不能表示になっている.ATTACHMENTフォルダが消えていたことに関係するのではないか?⇒無関係.選択したファイルが添付ファイルを持っている場合にのみ有効になる.

    トラブルシューティング情報にも記載はない.⇒ファイルを保存するでATTCHMENTフォルダに入ってくるので認識されていることは確かだ.添付ファイルは個別に保存というオプションがあったはずだが…添付ファイルメニューは使えるようになったが,保管場所を指定するメニューはない.⇒わかった.オプションパネル⇒添付ファイルだ.ここで保存先をを設定できる.「ファイルごとに保存先を指定する」では多分→添付ファイルで「保存」を選択したときの動作が変わるのだろう.⇒そのようだ.ファイルの種類によって動作設定できるようになっているが,使い方がわからない.どうもいまいちTBの添付ファイルの操作は分からないが,個別ファイルごと保存先を指定するとしておこう.

    ThunderBirdをまるごとバックアップするのに5GB必要だ.今後はTHUNDERBIRD DATAのバックアップだけでよいとしてドライブを空けてバックアップしておこう.⇒Eドライブが9.6GBあるのでバックアップを取っておこう.まず,これで完全に落ち着いたと言えるだろう.あとはフィルターを整備してメールを分類するだけだ.

    YAHOOの受信箱には804本入っている.まず,これらを片付けよう.⇒動作が少し変わってしまった.検索結果画面のレイアウトが違う.⇒検索ボックスを間違えていた.上下に2つボックスがある.上は検索画面を開き,下は受信箱の中でその形式で表示する.⇒Yahoo!アカウントの分は完了した.今後はすべて自動で振り分けができる.他のデバイスなどとの関係は入って来なければわからない.

    Gmailには15,829本のメールが入っている.このうち受信箱に入っているのは720本.Gmailへの接続に失敗したという通知が入った.オフラインで作業しているのだから当然だろう.IMAPでメールの移動を行ったときの動作を見るためにオンラインに戻して操作することにする.フィルターはアカウントごとに独立になっているが,テキストファイルなのでコピーすればそのまま使えるはずだ.⇒編集して保存したが,反映しない.TBを落としてから保存し直して反映するようになった.アプリを閉じるとき一時ファイルを書き戻しているのだろう.

    かなりいい感じに動作している.多分これだけでかなりのメールを処理できているはずだ.⇒Gmailの受信箱は614本に減少した.720から614だから106本しか減っていない.昨日設定したはずのフィルタの一部が落ちているように思われる.

    Windows Live Mailを廃してThunderBirdに全面移行する

    ThunderBirdのローカルフォルダにインポートされたメールデータはディスク上に物理的に配置されたメールファイルと完全に同期している.この意味ではThunderBirdに移植されたデータは「完全」であると言える.一方Windows Live Mailのローカルフォルダ中には紛失したメールが山のように残り,かつ,物理的に存在しているのにWLMからアクセスできないフォルダ/メールやWLMからは一つのフォルダのように見えるのに外部からは複数フォルダの連結のようになっていたりなど,物理ファイルシステムとWLMの仮想ファイルシステムにははなはだしい乖離がある.これを整理してThunderBirdとSLMを完全に同期させようと試みたのだが,主に時間的な理由から断念することにする.もうこれ以上Windows Live Mailと付き合うのは止めることにする.実際,MSがWindows Live Mailのサポートを打ち切った理由もこの辺りにあるのに違いない.

    本来ならWLMはこんなややこしいことをやらずに単純に物理ファイルシステム上でメールを管理しているだけでよかったはずだ.なぜこのような中途半端な仮想ファイルシステムを構築したのかその真意はわからないが,これ以上やっても時間の無駄であると思う.結局ThunderBirdに完全移管するということになるのだが,それはそれで問題がある.TBはある種のデータベースのような構造になっているため,メール単体をファイルとして扱うことがほとんど不可能になってしまうという点だ.ThunderBirdは基本的にThunderBird形式でしかエクスポートできないので,データが壊れた(壊された)ときにそれを修復する手段がほとんどない.データの保管場所が秘匿されていてエクスポート以外の手段ではそれを外部に持ち出すことができないという制約もある.WLMには保管場所を任意に設定できるという利点があった.

    また,TBの内部ファイルは基本的にバイナリファイルと考えられるのでMeryのようなファイル検察ツールでテキスト検索できない可能性がある.ちょっと実験してみよう.⇒ヒットする可能性はあるが,大きなデータベースファイルなのでほとんど手がかりを得られない.つまり,検索はTB内部の検索ツールを使う以外の手段がない.TBではフォルダ単位でならemlファイルにエキスポートする手段があるのでなにか必要があれば奥の手として使うことはできる.もし,WLMが存続していれば,そこにこのフォルダを移植することは不可能ではない…TBをフォルダ階層ごとemlファイルとしてエクスポートできるツールがあれば安心なのだが…

    Thunderbirdでメールや設定のデータを丸ごと移行(引っ越し)する方法を解説! https://applica.info/thunderbird-migration

    ThunderBirdではヘルプ→トラブルシューティング情報にシステムのすべての詳細情報が記載されている.ここからデータ保管場所のフォルダを直接開くこともできる.ここまで徹底して内部情報を開示しているアプリケーションはちょっとないのではないだろうか?この意味では「ThunderBirdは信頼できる」と言ってよいのではないかと思う.このゼロトラストの時代に「信頼できる」ことがどれほどかけがえのないものであるかは言うまでもない.その意味ではいまはもう長年馴れ親しんできたWindows Live Mailに別れを告げるときではないかと思う.

    ThunderBirdの馬場英治アカウントには18,446本,保存フォルダには73,060本のメールが入っている.この上にGmailからダウンロードした数GBのデータも管理しなくてはならない.WLMと同期を取るよりもThunderBirdの内部を整理して少しでも効率的に使えるように整備した方が前向きだ.ということで「決定」としたい.Gmailからダウンロードしたファイルはどうなっていただろう?⇒DOWNLOADSにAll mail Including Spam and Trash-001.mboxという名前で保存されている.mboxファイルはTBで読めるはずだ.インポートしてみよう.サイズは約2GBで現在馬場英治に入っているファイルサイズとほぼ同じだ.mboxファイルのインポートにはいくつかオプションがある.

    image

    このファイルには当然サブフォルダが含まれているものと考えられるので2番目を実行してみる.⇒入ってきた.フォルダを開こうとすると「…mboxの要約ファイルを作成しています」となり,1分後に開いた.48,011本のファイルがフォルダなしの完全にフラットな構成で並んでいる.確かにGmailにはフォルダという概念がないのだからある意味当然だ.表示項目に「タグ」というのがあるが,Gmailの「ラベル」とは異なるようで何も表示されない.馬場英治には18,447本ファイルが入っているが残りはどこから来たものだろう?⇒この差異はただ単純にIMAPからダウンロードされていないというだけだろう.

    馬場英治の下に60個くらいフォルダがあるが,ほとんどはすでに閉じて過去のものになっていると思われる.これらを移動ないし削除すればGmailをもう少し軽くすることができると思われる.未読(236)をローカルフォルダにコピーしたら,Gmail上で「未読」というラベルが消えた(ように思われる).移動になっているのだろうか?毎日新聞(1667)ではコピー操作後に読み出しが実行され,最終的に653本がダウンロードされた.スレッド数1,664とファイル数653が一致しないのはなぜだろう?未読が消えた理由もよくわからない.馬場英治アカウントの未読をフォルダごと削除してみた.未読はWeb上で消えているので特に変化はない.毎日新聞をフォルダごと削除してみた.⇒2つのフォルダをゴミ箱から削除してみよう.⇒Web上でも消えた.毎日新聞というラベルも消えている.WLMではもちろんできている.これはかなり痛い.⇒勘違いしていた.MWBで連動していないキーボードを使っていた.

    ステータスバーの赤いストップボタンで現在のエクスポートを停止し,日経ビジネスフォルダ内の全ファイルを右クリック→フォルダに移動でローカルフォルダに移動しようとして,IMAPとの接続が切断してしまった.いや,このメッセージはストップボタンの操作に関係するものかもしれない.東和銀行をコピーしたあと,メールを全削除でWeb上でも消えた.ラベルは残っている.ファイルを選択してフォルダに移動でもWeb上では消える.⇒どうも埒が明かないのですべてのフォルダを選択してローカルフォルダに一括コピーする.どのくらい時間が掛かるかわからないが,その間別のことができるだろう.⇒どうも一度に1フォルダしかやってくれないようだ.最初のフォルダは完了しているが,二番目のフォルダは空のまま…いや,いまごろになって日経ビジネスへのコピーが始まった.準備に時間が掛かっていたのだろう.

    WMLの2つのアカウントは送受信を停止した.ThunderBirdでYAHOOアカウントの送受信ができるようにしなくてならないのだが…ThunderBirdにはアカウントのインポート機能がないように見える.「設定」のインポートは前にやったことがあるが変化はなかった.YAHOOアカウントにも4754本ファイルが入っているので整理しなくてはならない.⇒ThunderBirdにはフォルダを選択して購読/購読解除という機能がある.これは結構便利かも.メニュー→オプション→アカウント設定を開くと馬場英治が2つ登録されている.左サイドバーからはすでに削除しているが,どちらを削除すればよいのだろう?⇒左サイドバーにも残っていた.左サイドバーの名前からアカウント設定を開いてパネル左下のアカウント操作→アカウント削除で削除できた.

    YAHOOアカウントもすでに登録されている.おそらくこれはWLMからインポートされたものだろう.この名前が左サイドバーに出てこないのは,WMLからインポートするとき馬場英治と一緒にインポートされたためだろう.一度このアカウントを削除してやり直した方が早いと思われが,WLMからインポートしたら同じ結果になるのではないだろうか?エクスポートされたファイルからではなくWLMから直接取り出しているように見える.手打ちした方が早いかもしれない.⇒メアドとパスワードを入力しただけであとはすべて自動でことが運んだ.⇒早速受信が始まった.⇒オプション→詳細→システム統合→Windows Searchによるメッセージの検索を可能にするという選択肢があった.返信メールを編集時,送信形式をHTMLからプレーンテキストに変更しても画面が変わらない…⇒アカウント設定→編集とアドレス入力→HTML形式でメッセージを編集するで設定した内容が優先する.オフ(テキスト)にした場合は編集画面のメニューで送信形式→HTMLでも画面は切り替わらない.

    ThunderBirdにはアーカイブ機能がある.月別や年次で保存できる.これも便利なのではないか?とりあえず未分類でも月別になっていれば整理がつく.必要なときには検索すればよいし,検索結果を別フォルダに移してもよい.いずれにしてもフィルタリングは必要だ.フォルダはやはり階層化しないと長いリストになってしまう.

    サーバ設定メッセージの保存終了時に受信トレイを整理する

    というオプションがある.どういうことをやるのだろう?上で購読/購読解除というのがあるが,これはメールの配信を止めるというのではなく,フォルダ単位にロードするか否かを設定できるというだけのものだ.基本的にアカウントのフォルダは受信トレイ,下書き,ゴミ箱,送信済みだけとし,GMAIL ARCHIVEを改めARCHIVEとしてアカウントに関わりなく受信メッセージは基本的にすべてこのフォルダに移すことにする.ただし,発信元に対しこちらから送信する相手方の場合には,別途常用のフォルダを作成する.未分類メールは「月次アーカイブ」に移動する.以上をもってフォルダ構成の基本方針とする.

    ThunderBirdのプロファイルフォルダの所在は(→ヘルプ→トラブルシューティング情報→アプリケーション基本情報→プロファイルフォルダ)で確認.メールの保存先は(アカウント設定→アカウント→サーバー設定→メッセージの保存)で指定することができる.添付ファイルの保存先も指定できる(オプション→添付ファイル).EドライブにThunderBird Dataというフォルダーを設け,ここにGMAIL, YAHOO, ATTACHMENTフォルダを作ることにする.念のためオリジナルの受信メールの保存位置をメモしておこう.

    C:\Users\babalabo\AppData\Roaming\Thunderbird\Profiles\jieemox4.default-release\ImapMail\imap.gmail.com
    C:\Users\babalabo\AppData\Roaming\Thunderbird\Profiles\jieemox4.default-release\ImapMail\imap.gmail.com

    フィルターを作って実行しながらメールを整理するのが一番効率がよいが,フィルターを適用するタイミングが問題だ.メールチェックは主にスマホで実行されることになるから,未読のうちに転送されてしまうと却って手間が掛かってしまう.むしろ,明示的に「アーカイブ」を指定したときに実行するというのがよいのではないか?金融機関,ネットショップなどカテゴリ別けした方がよいのだが後日に回して,ここでは双方向通信の場合だけ別扱いすることにしておく.登録完了メールは別フォルダとする.請求・支払いというフォルダを作っておくことにする.