2020年5月30日土曜日

メールの曜日/日付チェック (Check and Send 2.0.5)

Check and Send 2.0.5 をリリースしました。

ダウンロード:

※Mail Extensions版のため、Thunderbird 76 Beta1以降での動作になります。
 Thunderbird 68.xに無理やりインストールしても、一部機能が動きません。

新規に、曜日/日付のチェックを追加していて、
  • 曜日のチェック: 6/6 (金)と書いたが、その日は土曜日 
  • 指定した曜日のチェック: 6/7に打ち合わせと書いたが、その日は日曜日
  • 不正な日付のチェック: 2/29と書いたが、この年はうるう年ではない
のような、チェックができるようになります。

なお、このチェックは、年はみておらず、今日より後の日付は今年、
前の日付は来年として扱います。

この機能は、ほんとに多くの方から要望をもらっていたのですが、
全部、日本のユーザでした。
こんなの気にするのは、日本人だけなんですかね?




この機能を使う前に、設定が必要です。
設定には正規表現を使うため、プログラミングに親しみのない方には
ちょっと難しいかもしれませんが、チャレンジしてみてください。

以下、設定を説明します。
Check and Sendのオプションを下にスクロールすると、
「曜日/日付」というのが出てくるので、ここで設定します。


機能の選択


有効にする機能を選択してください。
  • 曜日と日付の整合を確認する
    日付と曜日があっていないとポップアップを出します
  • メッセージに以下の曜日が含まれていたら確認する
    チェックした曜日があるとポップアップを出します。
    曜日が間違っている場合は、正しい曜日のほうで判断します。
  • 不正な日時をチェックする
    4/31など存在しない日付があるとポップアップを出します。
ここまでは、簡単だと思いますが、以下からがちょっとめんどくさいです。

正規表現の設定
まず、メールの中から日付を検索する条件を設定します。
検索対象は件名とメール本文で、引用部と署名は除外されます。
また、大文字・小文字は区別しません。

検索するパターンを正規表現で設定します。
テキストフィールドに正規表現を書いてください。
このとき、月、日、曜日を後方参照で抽出できるようにしてください。
※(month=$1 ...)の部分は勝手につけられるので、気にしないでください。

抽出したものが、月、日、曜日のどれに該当するのかは、
テキストフィールドの横のリストで設定してください。

正規表現と後方参照が設定できたら、「追加」ボタンで追加してください。
更新ボタンで、既存の設定を修正することもできます。

曜日の抽出は、「曜日と日付の整合を確認する」以外は、
なくてもよいです。
このときは、曜日のところを「-」に設定してください。

上の例は、それぞれ、
  • 5/30 (土)
  • 5/30
のような日付にマッチします。

デフォルトで一つ目の設定が入っています。

月、日、曜日の定義
次に、抽出した、月、日、曜日を、どのように解釈するかを設定します。
これは、Javascriptの二次元配列で設定します。
デフォルトで、すでに設定が入っているので、これを変更してください。
配列の構成(カギかっこ)は変えずに、その中身だけを変えてください。


上記は、月の設定です。2行目が1月、3行目が2月…を表しています。
追加する場合は、「,」区切りで、「""」で囲んで入力してください。
例えば、全角や漢数字も解釈できるようにするには、
以下のように変更してください。(赤字が追加箇所)

[
  ["1","01","Jan","1","一"],
  ["2","02","Feb","2","二"],
  ["3","03","Mar","3","三"],
  (以下同様)


日、曜日もデフォルトで設定がされているので、
必要に応じて、同様に変更してください。


設定がおかしい場合には、以下のようにエラーメッセージが表示されて、
変更前の設定に戻ります。


ここまでできれば、設定は終わりです。

ちょっと設定が面倒な機能ですが、よければ使ってみて、感想を聞かせてください。




5 件のコメント:

  1. 日付の検索で
    9/30ではなく9月30日と記載した場合に検索させるようにするには
    どのように設定すれば良いでしょうか

    返信削除
  2. 以下のように入力してください。

    ■曜日チェックをする場合
    (\d+)月(\d+)日\s*\((\S+)\)
    月:$1 日:$2 曜日:$3

    ■曜日チェックをしない場合
    (\d+)月(\d+)日
    月:$1 日:$2 曜日:-

    返信削除
  3. h.ogiさま
    ありがとうございました。
    無事にできました。

    返信削除
  4. こちらのアドオン,仕事上とても便利で大変助かっています。
    本当に,ありがとうございます。

    仕事柄全角数字を使うことが多く,
    「9月30日」の形式でもチェックできたらと思って
    以下コードで記入設定したのですが,チェック機能が動作しませんでした。
    どうしたら良いでしょうか?


    月の定義:
    [
    ["1","01","1","Jan"],
    ["2","02","2","Feb"],
    ["3","03","3","Mar"],
    ["4","04","4","Apr"],
    ["5","05","5","May"],
    ["6","06","6","Jun"],
    ["7","07","7","Jul"],
    ["8","08","8","Aug"],
    ["9","09","9","Sep"],
    ["10","10","Oct"],
    ["11","11","Nov"],
    ["12","12","Dec"]
    ]

    日の定義:
    [
    ["1","01","1"],
    ["2","02","2"],
    ["3","03","3"],
    ["4","04","4"],
    ["5","05","5"],
    ["6","06","6"],
    ["7","07","7"],
    ["8","08","8"],
    ["9","09","9"],
    ["10","10"],
    ["11","11"],
    ["12","12"],
    ["13","13"],
    ["14","14"],
    ["15","15"],
    ["16","16"],
    ["17","17"],
    ["18","18"],
    ["19","19"],
    ["20","20"],
    ["21","21"],
    ["22","22"],
    ["23","23"],
    ["24","24"],
    ["25","25"],
    ["26","26"],
    ["27","27"],
    ["28","28"],
    ["29","29"],
    ["30","30"],
    ["31","31"]
    ]

    返信削除
  5. 便利な機能をありがとうございます。
    使用したいのですが、なかなか適用となりません。

    7月25日(火)といった表現をチェックしたい場合、
    正規表現と後方参照:のテクストボックスに

    (\d+)月(\d+)日\s*\((\S+)\)
    月:$1 日:$2 曜日:$3

    こちらを二段に分けて入力すればよいのでしょうか?

    また、月・日・曜日の定義はデフォルトのままでよいでしょうか?

    返信削除