[PREVIOUS CHAPTER]
[NEXT CHAPTER]
5 ContentHandler
5.1 フィルタルールの事例
multipart の各ブロックに対し処理を行なうので、良く考えないと
期待と違う動作をします。
◯ text/plain と text/html からなるメールの html 部分を落す
&ADD_CONTENT_HANDLER('multipart/.*', 'text/html', 'strip+notice');
◯ 普通のテキストメール はOK
text/plain + text/html は html 部分を叩き落す
text/plain + text/html + それ以外(謎の添付ファイル) は
最初の text/plain 以外は落す。
&ADD_CONTENT_HANDLER('multipart/.*', 'text/plain', 'allow');
&ADD_CONTENT_HANDLER('multipart/.*', 'text/html', 'strip+notice');
&ADD_CONTENT_HANDLER('multipart/.*', '.*/.*', 'strip');
5.2 解説 by the original author
Author: t-nakano@marimo.org
# [Example]
# add them at the last of config.ph (but before the last "1;").
#
&ADD_CONTENT_HANDLER('multipart/.*', 'text/plain', 'allow');
&ADD_CONTENT_HANDLER('multipart/.*', '.*/.*', 'reject');
&ADD_CONTENT_HANDLER('text/plain', '.*/.*', 'allow');
&ADD_CONTENT_HANDLER('!MIME', '.*/.*', 'allow');
&ADD_CONTENT_HANDLER(type, subtype, action);
type メール全体のMIMEタイプ
subtype multipartの時のそれぞれのブロックのタイプ
action マッチした時に起こすべきアクション
例
&ADD_CONTENT_HANDLER('multipart/.*', 'text/plain', 'allow');
MIME multipartのメールがきたら text/plain の部分だけを通す
&ADD_CONTENT_HANDLER('multipart/.*', '.*/.*', 'reject');
MIME multipartのメールがきたらすべて拒否
'/' で区切って perl の正規表現で表記できます。
!MIME は MIME 以外(その他)です。
各パート毎にその動作を指定できます。動作は、
allow 配信許可
allow はそのエンティティの multipart を分解してしまいます。
つまり allow にすると multipart でないメールになります。
allow+multipart 許可し、multipart のエンティティは multipart
のまま残す
allowと異なりこの場合はmultipart はそのまま通します。
strip 該当パートは削除
つまり一部分切り落として配送されます
strip+notice 該当エンティティは切り落とし投稿者に返される
1. 一部分切り落として配送される (stripと同じ)
2. 投稿者に切り落としたと知らせる
reject このパートがあればメール配信拒否
つまり、一箇所でもマッチする場所があればメール全体を拒否
が選択できます。
[PREVIOUS CHAPTER]
[NEXT CHAPTER]