メールをベイジアンフィルターで複数のカテゴリに分類するThunderbird拡張機能「AutoBucket」に新着メールを自動分類する機能を追加しました
目次
Thunderbird 78の新機能で実現可能に
Thunderbird 68以前のWeb Extension(Mail Extension)ベースの拡張機能では、新着メールに対して何か処理することができなかったのですが、先日公開されたThunderbird 78でやっと新着メールに拡張機能がアクセスできるようになりました。
そういうわけで新着メールが来たら自動でメールの判定を行い、分類タグをつける機能を追加しました。
まぁこれが普通の動作だよね。今までは新着メールが来る度にctrl + Bを押してメールを判定させないといけませんでした。
意外とThunderbird 78対応に手こずった
Thunderbird 78からMail Extensionで作られていない拡張機能は非対応になりました。
AutoBucketは元々Mail Extensionベースで作成していたので、特に何も対応しなくてよいだろうと高を括っていたら、設定画面で全然設定を読み込んでくれなくて、かなり手こずりました。
結局、原因はよくわからないのですが、設定画面を拡張機能のページではなく、別タブの中に移動したら動くようになりました。よくわからん。
TypeError: prin.URI is null
ConduitsParent.jsm:123:58
Error: Unknown sender or wrong actor for recvCreateProxyContext ConduitsParent.jsm:321:13
Error: Unknown sender or wrong actor for recvAPICall ConduitsParent.jsm:321:13
Content Security Policy: ページの設定により次のリソースの読み込みをブロックしました: inline (“default-src”)
デバッグコンソール見ると、こんな感じで謎のnullエラーがThunderbird内部で起きちゃって、Mail Extension API呼び出しているところが軒並み動作しない状態に。
Vue.jsで作った画面だとこうなって、backgroud.js内では同じ関数呼び出してもエラーにならない。
結局、manifest.jsonでopen_in_tabをtrue設定画面を別タブで開くようにしたら解決。ただ、Content Security Policyのエラーは出つつけてますが…。
"options_ui": {
"page": "options/options.html",
"chrome_style": true,
"open_in_tab": true
},
GitHubにはもう少し経緯など残しているので気になる方はどうぞ。
海外からぼちぼち反響あり
Thunderbirdの開発者ページでアクティブユーザー数(一日一回のアップデート確認の数がカウントされているみたい)がわかったりするのですが、今の所全世界のアクティブユーザーが30名ぐらいみたいです😀
とはいえ最初は自分しか使わないつもりだったから意外と使ってもらってるという感覚ではあります。
結構、海外の方からコメントいただくというか、海外の方からしかコメントこないんですけど、あまり他に同じような機能のソフトがないので需要はあるみたいですね。
今回、はじめてGitHubのイシューで意見もらいました。なんかオープンソースって感じ!😀
英語わかんないですけど、Google翻訳のおかげでなんとかコミュニケーションが取れてます。すごい時代になったなー。
AutoBucket
メールをベイジアンフィルターで複数のバケツに分類してタグを付ける拡張機能です。
a-tak/auto-bucket
Automatic mail classification extension with Bayesian filter for Thunderbird – a-tak/auto-bucket