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

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

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

執筆者:

関連記事

Djangoアプリサンプル – 画像ファイルアップロード + 顔モザイク(画像アップロード編)

仕事で使用している、Djangoについて、サンプルを作成してみようと思います。ここでは、画像ファイルのアップロードと顔モザイクを行うwebアプリを作成してみようと思います。 この記事ではファイルアップ …

unconstant – perlライブラリ

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

Pythonのmock.patchを使ってみる

単体テストによく使われるMockライブラリ Pythonで単体テストを行う際、実際のライブラリを使用してしまうと、実際の環境を用意しなければいけません。 例えば、データベースのテストをする際に、データ …

IPS/IDS(Suricata)のインストール

とても遅まきながら、暇なのでIPS/IDSをこのサイトに組み込んでみます。 Suricata SuricataというOSSのIPSがあるそうなのでインストールしてみます。 環境 CentOS7(7.9 …

Nuxt.jsのFormで入力/確認/完了フォームを作成してみた(その1)

背景 今回は、Webアプリケーションの、フロントエンド系のお話です。ほとんどの場合、バックエンドなのですが、時々フロントエンドもするんですよね。。 私の派遣先では、入力フォームを以下のように分ける要望 …

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