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 -- b...@idiot.com < 
> /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" b...@idiot.com < 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

Reply via email to