メールフィルタ設定においてFrom:文字列に2バイト文字コードを指定する方法とワイルドカード指定について updated!
【メールフィルタ設定において、From:文字列に2バイト文字コードを指定する方法】
From:ヘッダーにある特定の全角文字で拒絶するには「メールフィルタ設定【mail.dat】」を利用します。From:項目で指定する文字列は、基本的には完全一致でなく、部分一致でマッチングされます。
メール件名の文字コードの大多数は、UTF-8やJIS(iso-2022-j)にエンコードされて送信されてくるので、【mail.dat】のFrom:項目で指定する場合は、エンコードされた文字列を指定します。ちなみに直接書いた全角文字(2バイト文字コード)の文字列は、Shift-JISとして判定されます。従って【mail.dat】には1件の全角文字語句を登録しようとする場合、最低でも3〜4種類のMIME-Bエンコードした文字列の指定が必要となります。
【用意する文字コード】
・必須(国内メールの大半)
1.JIS(iso-2022-j)
2.UTF-8
3.Shift-JIS(Windows-31J)
・余裕があれば
4.EUC-JP
・海外スパムまで視野
5.GB18030 / Big5 / EUC-KR(中韓系の全角系)
【設定の手順】
メールフィルタ設定【mail.dat】に設定例のように記述していきます。
From:ヘッダーにある特定の全角文字で拒絶する場合は、"MIME-Bエンコード"されたトークン指定、すなわちヘッダ(=?xxxxx?B?)とフッタ(?=)で囲んだエンコードされた文字を記述します。JIS(iso-2022-j)用とUTF-8用それぞれ必要です。E-Postがメールフィルタ機能によってマッチングする際、この文字列をデコードし、部分一致でマッチングされます。
エンコードするには、いろいろある変換サイトのサービスを使うとか、送信メールの文字コードを変更指定できるメーラーから実際に送信し、受け取ったメールデータから取り出して利用します。
下記の設定例では、Level:110の指定をすることによって、指定された条件に合致したメールを拒絶するとともに、拒絶されたメールはviruslogフォルダに.MSGと.RCPファイルと対で保管されます。合わせてWarning:〜WarningEnd:項目で指定されたメッセージが、拒絶時に保管される.RCPファイル内に記載されるため、どの条件にマッチしたかが後で見きわめられます。
【設定例】
JIS(iso-2022-j)、UTF-8、Shift-JISで記載された"高確率"や"当る"がFrom:ヘッダーに含まれているメールを拒絶する例
※下線部分がMIME-Bエンコードした文字列
'------------------------------------------------------
Virus:SPAM(1) "高確率 (From:JIS(iso-2022-j))"
From:=?iso-2022-jp?B?GyRCOWIzTk4oGyhC?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(1) "高確率 (From:JIS(iso-2022-j))"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(2) "高確率 (From:UTF-8)"
From:=?UTF-8?B?6auY56K6546H?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(2) "高確率 (From:UTF-8)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(3) "高確率 (From:Shift-JIS)"
From:=?Shift_JIS?B?jYKKbZem?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(3) "高確率 (From:Shift-JIS)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(4) "高確率 (From:EUC-JP)"
From:=?EUC-JP?B?ueKzzs6o?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(4) "高確率 (From:EUC-JP)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(5) "当る (From:JIS(iso-2022-j))"
From:=?iso-2022-jp?B?GyRCRXYkaxsoQg==?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(5) "当る (From:JIS(iso-2022-j))"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(6) "当る (From:UTF-8)"
From:=?UTF-8?B?5b2T44KL?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(6) "当る (From:UTF-8)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(7) "当る (From:Shift-JIS)"
From:=?Shift_JIS?B?k5aC6Q==?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(7) "当る (From:Shift-JIS)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
Virus:SPAM(8) "当る (From:EUC-JP)"
From:=?EUC-JP?B?xfak6w==?=
Level:110
Warning:
---------------- warning ---------------------
SPAM(8) "当る (From:EUC-JP)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
半角の場合
'------------------------------------------------------
Virus:SPAM(9)"apple (From:ASCII)"
From:apple
Level:110
Warning:
---------------- warning ---------------------
SPAM(9) "apple (From:ASCII)"
-----------------------------------------------
WarningEnd:
VirusEnd:
'------------------------------------------------------
【ワイルドカード指定について】
「メールフィルタ設定【mail.dat】」では"*"で表すワイルドカード記述は無効扱いとなります。
実際は、先述のとおり部分一致でのマッチングのため、"*"を記述せずとも基本的に前後がワイルドカード扱いとなっています。
それでも、明示的に"*"を記述することによってワイルドカード指定をどうしても行いたい場合は、下記に記すオプション指定方法が用意されております。
この値を入力せずとも、既にワイルドカード指定された扱いとして基本動作していますので、手動によるファイル変更を行う必要性をご検討のうえご判断ください。
------------------------------------------------------
ワイルドカード記述するためのオプションを有効にする方法
以下の設定ファイル"MailFilterUp.1"を手動で作成し、ファイル内に"1"を数値で記述します。なお記述した数値の後の末尾は改行しません。
[メール作業ディレクトリ](既定値 /var/spool/epms/)
→reg
→epost
→ims
→MailFilterUp.1
※ファイル作成後、全サービスを再起動します。
これにより、From:*=utf-8?b?xxxxx?=*といった記述が利用可能となります。
------------------------------------------------------
(関連FAQ)
●メールフィルタ設定の Warning: は何のために用意されている?
●メールフィルタ(mail.dat)の設定事例
●メールフィルタ設定でワイルドカードは使えないか
●SecureHandlerのハンドリングルールでFrom:文字列を指定する方法