On 6/10/2014 3:05 PM, Jay G. Scott wrote:
>
> RE: the after-queue, simple filter example
>
> Just trying to figure out how it works.
> I have a feeling I don't fully understand the full implications of
> "after-queue".
>
> From master.cf:
> # custom filter
> filter unix - n n - 10 pipe
> flags=Rq user=filter null_sender=
> argv=/VOLUMES/gizmonics/work/afterqueue/simple -f ${sender} -- ${recipient}
>
> The user is in
> [root@clemi postfix]# grep -w filter /etc/passwd /etc/group
> /etc/passwd:filter:x:506:506:smtp filter:/var/spool/filter/:/bin/bash
> /etc/group:filter:x:506:
>
> The user filter owns the directory
> [root@clemi postfix]# ls -ld /var/spool/filter/
> drwxr-xr-x 2 filter filter 4096 Jun 10 14:49 /var/spool/filter/
>
> The user filter owns the script
> [root@clemi postfix]# ls -l /VOLUMES/gizmonics/work/afterqueue/simple
> -rwxr-xr-x 1 filter filter 814 Jun 10 14:46
> /VOLUMES/gizmonics/work/afterqueue/simple
>
> I've run that from the command line, ie:
>
> /VOLUMES/gizmonics/work/afterqueue/simple -f gl -- [email protected] <
> /VOLUMES/gizmonics/work/afterqueue/dull
>
> and it works when run like that. The simple script does what I expect, and
> the mail
> does get to bbb's mail file.
>
> Here's my simple script, which is just the example script from the
> FILTER_README.html page with only two or so lines changed, marked below:
>
>
> #!/bin/bash
>
> # Simple shell-based filter. It is meant to be invoked as follows:
> # /path/to/script -f sender recipients...
>
> # Localize these. The -G option does nothing before Postfix 2.3.
> INSPECT_DIR=/var/spool/filter
> SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
>
> # Exit codes from <sysexits.h>
> EX_TEMPFAIL=75
> EX_UNAVAILABLE=69
>
> # Clean up when done or when aborting.
> trap "rm -f in.$$" 0 1 2 3 15
>
> # Start processing.
> cd $INSPECT_DIR || {
> echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
>
> cat >in.$$ || {
> echo Cannot save mail to file; exit $EX_TEMPFAIL; }
>
> # Specify your content filter here.
> # filter <in.$$ || {
> # echo Message content rejected; exit $EX_UNAVAILABLE; }
>
> ### this sed line is added, and the $SENDMAIL changed to read from smak.$$
> ### otherwise, it's completely stock.
> sed -e 's/http/hxxp/g' in.$$ > smak.$$
>
> $SENDMAIL "$@" <smak.$$
>
> exit $?
>
>
> -------
> I've changed master as shown above.
> I've done postfix reload.
>
> But all of my tests like so:
>
> mail -s "wogujwrg" [email protected] < test.input.file
>
> deliver the test.input.file unmodified. Do I not understand what
> "after-queue" means? I've been assuming this would, sooner or later,
> send things to the filter. It looks to me like it's bypassing
> the filter.
>
> j.
>
So how is postfix supposed to know to use the filter? Did you set
content_filter in main.cf or are you using an access table the
responds with FILTER.... or what?
-- Noel Jones