スクリプトのお勉強 セキュリティ 技術

SPAMチェック for OCN の アップデート(v0.7.0)

投稿日:

以前、ここで書いたように、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

-スクリプトのお勉強, セキュリティ, 技術
-,

執筆者:

関連記事

unconstant – perlライブラリ

ちょっとだけperlの機能修正をしたので、そのときに使用したライブラリについて書こうと思います。 perlのunconstant です。 use constantの解除 use constantとは固 …

Vue.js 導入編

1.はじめに 近年、web関係で「クライアントサイドJavaScript」というのがトレンドになっているそうです。 「クライアントサイドJavaScript」と、従来のWebアプリケーションとの違いは …

Ubuntu 20.04のMySQL8.0.22でrootパスワードをリセットする

小ネタです。 休みなので 久しぶりにローカル環境のUbuntuでMySQLにアクセスしようとして、パスワードを見事に忘れたことに気づきました。 ubuntu 20.04なので、以下の手順でパスワードの …

SPAMチェック for OCN の開発

前回、Thunderbirdプラグインの概要を書いたので、今回は開発したプラグインについて書きます。 SPAMチェック for OCNとは 以下の機能を持ったThunderbirdのアドオン(プラグイ …

故障物(8インチタブレットからBMAX MaxPad l11に)

ついに故障 ついに8インチタブレットがほぼ故障しました。「ほぼ」というのは、バッテリーが使えずずっと電源線に繋げてないと使えないからです。 それではタブレットの意味がありません。 つぎは10インチタブ …

google オプトアウト Click here to opt-out.