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

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

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

執筆者:

関連記事

yoyo-migrationsを使ってみる

勉強用に、PythonでPostgresqlを制御しようと思います。 その前に、Postgresqlの設定と、マイグレーションをしようかと思います。まずyoyo-migrationsを使用します。 y …

小ネタ – Python3 でIPv4アドレスの第三オクテットを加算する方法

ホント小ネタです。IPv4アドレスの第四オクテットは単に加算すればいいですが、第三オクテットを加算する方法が見つかりませんでした 通常はしないのかもしれませんが、、そして残念ながら、いい方法がありませ …

Svelte(Carbon Components Svelte) + Python(FastAPI)でWebアプリを作る

Svelte用のサンプルとして、Carbon Components SvelteのTreeViewを試用してファイルツリーを表示し、各データはAPIとして読み出し、編集するWebアプリケーションを実装 …

seaborn + Pandas + Python によるグラフ描画(その1: 準備編)

グラフ描画してみよう 今現在の仕事で、グラフ描画する可能性があるので、少し練習してみようと思います。 題材について 突然ですが、私は確定拠出型年金に加入しています。証券会社はSBI証券 にしています。 …

SNMPTrap を Kafka に転送するツール:snmptrap-kafka-forwarder の紹介

はじめに こんにちは!今回は、ネットワーク監視の世界で古くから使われている SNMPTrap を、モダンなデータ基盤である Apache Kafka に連携するための便利なツール「snmptrap-k …

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