2008-05-18

postfix filterの使い方

・postfixのqmgrからfilterを経由する方法
qmgrからpipeでfilterを経由。sendmailにてmaildropに入り、pickup、整形されて
宛先に配送される。
私の場合、外部メール転送時に、ローカル配送と同じようにcleanupさせたいときに下記方法を利用している。

・filterの作成
---------------------
1 #!/bin/sh
2
3 # Simple shell-based filter. It is meant to be invoked as follows:
4 # /path/to/script -f sender recipients...
5
6 # Localize these.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -i"
9
10 # Exit codes from
11 EX_TEMPFAIL=75
12 EX_UNAVAILABLE=69
13
14 # Clean up when done or when aborting.
15 trap "rm -f in.$$" 0 1 2 3 15
16
17 # Start processing.
18 cd $INSPECT_DIR || {
19 echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
20
21 cat >in.$$ || {
22 echo Cannot save mail to file; exit $EX_TEMPFAIL; }
23
24 # Specify your content filter here.
25 # filter 26 # echo Message content rejected; exit $EX_UNAVAILABLE; }
27
28 $SENDMAIL "$@" 29
30 exit $?
---------------------

・master.cfの変更
以下を追加
---------------------
filter unix - n n - 10 pipe
flags=Rq user=filter argv=/path/to/script -f ${sender} -- ${recipient}

smtp inet ...other stuff here, do not change... smtpd
-o content_filter=filter:dummy
---------------------

・リンク

Postfix キューに入った後のコンテンツフィルタ

No comments: