以前、ここで書いたように、SPAMチェックのThunderbirdプラグインを作りました。
そして、Thunderbirdがアップデートしたので、Pluginもアップデートする必要があります。
正直放置していたのですが、本家から「アップデートしろ」メールが来たので新版のThuderbirdに対応しようと思いました。
まず思い出す
APIの仕様
https://webextension-api.thunderbird.net/en/stable
Thunderbird 128系変更点
https://developer.thunderbird.net/add-ons/updating/tb128
からすると、Manifest V2からManifest V3にする必要があります。
準備
正直すべて忘れた(+パソコンを買い替えた)ので最初からやってみます。
(1) ツールインストール
以下をインストールします。Thunderbirdは既に入ってるかもしれませんが、
バージョンを128以降にした方がいいと思います。
- Windows 11 23H2 OSビルド 22631.4037
- Thunderbird 128以降
- nodejs v20.16.0 (LTS)
- https://nodejs.org/ja/ からその時点の最新版をインストール
- npm 10.8.2
- VSCode
- git 2.46.0.windows.1
以下でビルド用ツールをインストールしておきます。
> npm install -g web-ext
ついでにgitが入ってなかったので入れました。
(2) 開発環境構築
ここのように別プロファイルを生成します。
自分の環境に影響がないようにするためです。一応しておいた方がいいかと思います。
ただし、昔使ったPluginTestプロファイルがあったので
thunderbird.exe -ProfileManager
(以下のように開発プロファイル(PluginTest2)を作成しておきます。開発プロファイル名は何でも構いません。
昔は忘れましたが、間違った設定をすると)
以下のようなショートカットを「Thunderbird 開発用」として作っておきました。
"C:\Program Files\Mozilla Thunderbird\thunderbird.exe" -no-remote -P PluginTest
(3)ソース
ソースは ここ に置いてあります。
処理追加(“.cn”をSPAMにする)
はっきり言って、”.cn”からくるメールは全部SPAMなので、メールにjunkに分類します。
Authentication-Resultsを見て、以下ならSPAMと判定します。
- sender-idでHeaderが”*.cn”
- dkimのheader.iが”*.cn”
微妙なのが以下の感じのやつです。.comだけど明らかに怪しい。でもこれをそのままエラーにしてしまうと問題なのでとりあえずはスルーします。
Authentication-Results: XXXXXXX; spf=pass smtp.mailfrom=XXXXX@XXXXXXXX; sender-id=fail header.From=myjcb@ezv508.com; dkim=pass header.i=myjcb@ezv508.com; dkim-adsp=pass header.from=myjcb@ezv508.com
その他修正点
manifest.json
主に以下を修正しました。
- applications -> browser_specific_settings
- permissionsに messagesUpdate追加
- options_uiにopen_in_tab削除
backgroud.js
- messages.list APIの引数がmailfolderからidに変更されているので対応
ビルド
プラグインをビルドします。
### Windows 11でスクリプトを実行できるようにする > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser > web-ext build --overwrite-dest -s .\spamchecker\ Building web extension from .\spamchecker Destination exists, overwriting: .\web-ext-artifacts\spam_check_for_ocn-0.7.0.zip Your web extension is ready: .\web-ext-artifacts\spam_check_for_ocn-0.7.0.zip
動作確認
ここに書いたのと同じなので割愛します。
一通り動くことを確認しています。
アップロード
自分の文書を見ながらアップロードしました。なにしたかあまり覚えてない。。
https://addons.thunderbird.net/ja/thunderbird/addon/spam-check-for-ocn
にアップロードした時点では0.6.0になってました。私じゃなくても登録できるのね(苦笑)
でもそれはAPIの呼び方が違っていて、一部動かないのでそこらへんも修正してあります。
いつかはv0.7.0になるでしょう(多分
参考
https://webextension-api.thunderbird.net/en/128-esr-mv3/index.html