思ったより簡単だったThunderbirdのAdd-on開発
メーラーはThunderbirdを使っています。
今はなきOutlookExpressからの移行を迫られた際に、以降の移行の容易さを評価して採用したのがきっかけです。
以来、ずっとThunderbirdを使っているのですが、ちょっとした不満があり、Add-onの開発をしてみました。
その不満というのは、認証キーの扱いです。
Thunderbirdに限ったことではないのですが、FortiClientVPNを使ってFortiGateとVPN接続する際、e-mailによる二要素認証を使っています。
この時、こんな感じのメールが飛んできます。
ですので、このメールを開いて(選択して)、認証キーをコピーして、FortiClientVPNのボックスに入力する、という作業が必要になります。
これを、メール受信したら勝手にクリップボードにコピーされると楽だなぁ、と考えたのです。
結果的に、2時間調べたくらいではメール受信時に自動処理というのは実現できなかったのですが、認証キーが入ったメールを選択すると、キーだけがクリップボードにコピーされるいうアドオンができました。
これでかなりVPN接続時の手間が減りました!
具体的にはこれだけ。
1. manifest.jsonを作成
2. 処理内容をjavascriptで作成
3. 2つのファイルを7-zipでzipにする
4. アドオンをファイルからインストールする
他で言われているようなプロファイルの作成とかは必要ありませんでした。
ソフトウェアはthunderbird 91と7-zipのみ。
エラー処理してない最低限のコードですけど、とりあえず以下で動きます。
権限も最小限に。
少ししたらzipそのものをダウンロードできるようにしたいと思います。
公式で配布するかどうかは…今のところは考えてません。
manifest.json
{ "manifest_version": 2, "applications": { "gecko": { "id": "japelin-GetAuthCode@gmail.com", "strict_min_version": "91.0" } }, "name": "GetAuthCode", "description": "Get Authcode From Mail", "version": "0.0.1", "background": { "scripts": ["background.js"] }, "permissions": [ "messagesRead", "clipboardWrite", "storage" ] }
background.js
browser.mailTabs.onSelectedMessagesChanged.addListener(async (tab, messageList) => { for (let message of messageList.messages) { messagePart = await browser.messages.getFull(message.id); for (let hcontent of messagePart.headers['subject']) { var pos_sbj=hcontent.indexOf("AuthCode"); if (pos_sbj == 0) { var pos_dlm=hcontent.indexOf(" "); var authcode=hcontent.slice(pos_dlm+1); navigator.clipboard.writeText(authcode); }; }; }; });
開発手順は後でまとめましょうかね。
XPTViewer更新(フォルダモード追加)
あけましておめでとうございます。
久々にXPTViewerの更新です。
xptファイルって大概1つのフォルダにまとめて入ってますよね。
実務で使用していて、別のxptファイルを読み込むのにいちいちダイアログから選ぶのが面倒だなぁ…、と思いまして、フォルダ内のxptファイルを一覧で取得して簡単に読み込めるようにしました。
こちらからどうぞ
https://bitbucket.org/t_kawakami/xptviewer-for-public/src/main/
プリンタを新調しました
brotherの複合機MFC-J6583CDWを買いました(会社の金で)。
価格.comでA3対応、両面印刷可能なプリンタの最安がこれだったので(FAXいらないけど)
リモートワークが増えたためか、半導体不足もあってか、かなり在庫が逼迫しているようですがなんとかすぐに入手できました。
12/22購入、12/24着。クリスマスプレゼントか、っちゅうの。
(Amazonでも入荷未定です)
この商品、有線LANと無線LANを搭載しているのですが、同時には使えないとのこと!(買ってから気づいた)
しょうがないので、接続を工夫して有線でも無線でも使用できるようにします。
ちょっと前に書いたか書いてないか覚えていませんが、自宅ネットワークは以下のようになっています
(IPは適当です)
NURO光 │ ONU(素通り) │ FortiGate───────────┐ │ (192.168.10.0/24) │(192.168.20.0/24) ハブ Google Nest Wifi │ │(192.168.86.0/24) 有線接続 無線接続
有線ネットワークには仕事で使用しているPCが接続されているのですが、プリンタを無線に接続しちゃうと、Google Wifiがルーティングしてくれない(あくまでGoogle Wifi。ルータとは呼べない)ので、使えなくなってしまいます。(そのため、今は有線無線両方ONにしています)
逆に、無線側ネットワークからは有線ネットワークにアクセスできます(ルータ:FortiGateのポリシー:許可が必要)ので、有線に接続して、そこにアクセスすれば有線接続のPC環境でも、無線のスマホからでも印刷ができるはずです。
しかし、Brotherのプリントアプリ「iPrint & Scan」では、「基本的には」セットアップ時にプリンタとスマートフォンが同じネットワークに接続されている必要があります。
そこで、手動でIPを指定してあげます。
アプリを起動し、機器選択画面の右上、「手動設定」からIPアドレスを指定します。
プリンタ本体で固定IPとするか、ルータ側(FortiGate)でIPを割り当てしておき、そのIPを入力すればOKです。
ルータ側で設定したら、一度LANケーブルを抜いて割当し直しましょう。
きちんと機器が表示されました。
なお、少なくとも後ろは差し込み印刷のために12cm程度のスペースが必要です。(ギリギリでした)