taboo_headers << END
/^Content-Type:\s*multipart/i
END
※書式については、『4.書式について』を参考にしてください。
$global_taboo_headers = <<'END';
/^subject: ndn: /i
/^subject:\s*RCPT:/i
/^subject:\s*Delivery Confirmation\b/i
/^subject:\s*NON-DELIVERY of:/i
/^subject:\s*Undeliverable Message\b/i
/^subject:\s*Receipt Confirmation\b/i
/^subject:\s*Failed mail\b/i
/^subject:\s*Returned mail\b/i
/^subject:\s*unable to deliver mail\b/i
/^subject:\s.*\baway from my mail\b/i
/^subject:\s*Autoreply/i
/^x-sequence:/i
/^precedence: (bulk|junk)/i
/^Content-Type:\s*multipart/i
END
※書式については、『4.書式について』を参考にしてください。
以下のセッションを探します。
# check for administrivia requests
if (defined($opt_s) && ! defined($approved)
&& (/^subject:\s*subscribe\b/i ||
/^subject:\s*unsubscribe\b/i ||
/^subject:\s*help\b/i ||
/^subject:\s*RCPT:\b/ ||
/^subject:\s*Delivery Confirmation\b/ ||
/^subject:\s*NON-DELIVERY of:/ ||
/^subject:\s*Undeliverable Message\b/ ||
/^subject:\s*Receipt Confirmation\b/ ||
/^subject:\s*Failed mail\b/ ||
/^subject:\s.*\bchange\b.*\baddress\b/ ||
/^subject:\s*request\b.*\baddition\b/i ||
/^Content-Type:\s*multipart/i)) {
&bounce("Admin request");
}
・基本形として、"/"ではじまり"/"で終わります。
例
/Content-Type:multipart/
# "Content-Type:multipart"という記述がヘッダにあった場合、バウンズメールとして処理する。
・最後の"i"は、大文字、小文字を区別しないという意味です。
例
/Content-Type:multipart/i
・"^"記号は、行の最初という意味です。
・"*"は、スペースを飛ばすという意味です。
・".*"は、途中の文字列を省略するという意味です。
例
/Content-Type:multipart/mixed.*mixed/i
# Content-Typeではじまりmixedで終わる文字列を見つける。
・"\"は、記号などを記号を一つの文字として認識させるために用います。
例
/Content-Type:multipart\/mixed/
# "/"を一つの文字として扱う
そのほかに、@ / . ? * + ^ $ ( ) [ ] { } | \ - が有ります。
今回、マルチパートMIMEをフィルターリングする方法を記述しましたが、そのほかについては好ましくないメールが届いた場合ヘッダを解析して追加するしかないでしょう。私の興味の持っている範囲で、以下に書き出します。
キーワード | 意味 |
/^Content-Type:\s*multipart/i | 全てのマルチパートMIMEメール |
/^Content-Type:\s*multipart\/alternative/i | HTMLメール |
/^Content-Type:\s*multipart\/mixed/i | 添付ファイルメール |
/^From:\s.*\@(.*\.)?foo.com/i | 例として、差出人がxxx.foo.comから出している人 |