On Tue, Jun 10, 2014 at 03:37:34PM -0500, Noel Jones wrote:
> 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?
>
ahhh, I didn't know. The FILTER_README doesn't mention main.cf
in connection w/ the simple content filter, just the advanced.
I assumed the FILTER_README knew what it was doing.
but it did puzzle me, as my production/commercial filter
does require something in main.cf.
i will poke around w/ that.
j.
>
>
> -- Noel Jones
--
Jay Scott 512-835-3553 [email protected]
Head of Sun Support, Sr. System Administrator
Applied Research Labs, Computer Science Div. S224
University of Texas at Austin