メールフィルタ設定で Subject:ヘッダーが UTF-8 の base64エンコードされた文字列を判定しフィルタ条件として指定する場合 new!
メールフィルタ設定において、Subject:ヘッダー、つまり件名が文字セット「UTF-8」、エンコード方式「Base64」でエンコードされている文字列を判定し、フィルタ条件として指定するとき、以下の要点で行います。
メールが文字セット「UTF-8」、エンコード方式「Base64」でエンコードされている場合、メールデータの Subject:ヘッダー部分は先頭が "Subject: =?utf-8?B?" で始まり、末尾が "?=" で終わっているのが特徴です。実際のメールデータをエディタで開いてみると確認できます。
メールフィルタ機能で実際にマッチングさせる文字列を指定する場合、base64エンコードツールを使ってエンコードさせた文字列を指定する必要があります。
たとえば平文で "ABCDEF" を意味する文字列ならば、「UTF-8」の文字セット、「Base64」でエンコードすると "QUJDREVG" となりますが、【mail.dat】内に記述する Virus: から VirusEnd: までのサブルーチンの間の "Subject:" 指定部分については、以下のようにします。
先頭が "Subject: =?utf-8?B?" で始まり、続いてエンコードした文字列 "QUJDREVG" 、最後に "?=" を付け加えます。なおこのほかサブルーチン内には Level:500 や Level:600 など、Level:xxx でメールフィルタの挙動を必ず指定してください。
--------------------------------------
Subject: =?utf-8?B?QUJDREVG?=
--------------------------------------
なお、メールフィルタ機能で特定文字列を見つけるときの動作内容ですが、「Base64」でエンコード&パックした指定の場合は部分一致として動き、「Base64」でエンコード&パックしないで平文で指定した場合は前方一致として働きます。この点だけ注意してください。
- 「Base64」でエンコード&パックした指定の場合:比較処理は "*文字列*"(部分一致)です。
Subject: =?utf-8?B?[base64エンコードした文字列]?=
- 「Base64」でエンコード&パックしないで平文で指定した場合:上記の比較処理は "文字列*"(前方一致)です。
Subject: [文字列]
(参考情報)日本語メールの仕組み
https://sendgrid.kke.co.jp/blog/?p=10958