I think you should have something like this.
filters.in.tab (tab separated)
"*" "*" "0.0.0.0/0" "0.0.0.0/0" "xm-spf.tab"
xm-spf.tab
"/var/MailRoot/filters/xm-spf.pl" "@@FILE" "@@FROM"
"@@RCPT"
thanks,.
chad
Vinny Wadding wrote:
> thanks for that chad, I have the script as I followed the link from
> xmailserver site. what I was hoping for was a filters.in/out.tab
> configuration or some advice on using the script rather than just the
> script itself. I have the script, I just got a bit lost in trying to
> translate the input parameters to the cpan module that this script
> uses. I was hoping to learn from someone that had already implemented
> this script, and had a working xmail config that they were willing to
> share. I feel this is is what is missing from this script, is clear
> instructions of advice on how to implement it in a live environment.
> Chad Fleenor wrote:
>
>> #!/usr/bin/perl
>> #
>> # xm-spf.pl by Davide Libenzi ( XMail Perl filter for SPF )
>> # Copyright (C) 2004 Davide Libenzi
>> #
>> # This program is free software; you can redistribute it and/or modify
>> # it under the terms of the GNU General Public License as published by
>> # the Free Software Foundation; either version 2 of the License, or
>> # (at your option) any later version.
>> #
>> # This program is distributed in the hope that it will be useful,
>> # but WITHOUT ANY WARRANTY; without even the implied warranty of
>> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> # GNU General Public License for more details.
>> #
>> # You should have received a copy of the GNU General Public License
>> # along with this program; if not, write to the Free Software
>> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>> #
>> # Davide Libenzi <[EMAIL PROTECTED]>
>> #
>>
>> use strict;
>> use Mail::SPF::Query;
>>
>> my $opt_file = undef;
>> my $opt_ip = undef;
>> my $opt_sender = undef;
>> my $opt_helo = undef;
>> my $opt_rcpt_to = undef;
>> my $opt_local = undef;
>> my $opt_trusted = undef;
>> my $opt_guess = undef;
>> my $opt_exp = undef;
>> my $opt_max_lookup = undef;
>> my $opt_sanitize = undef;
>> my $opt_name = "spfquery";
>> my $opt_debug = 0;
>> my $opt_keep_comments = 0;
>> my $opt_fallback = undef;
>> my $opt_override = undef;
>> my $opt_dns = undef;
>> my $opt_help = undef;
>> my $opt_pcode = 0;
>> my $opt_fcode = 19;
>> my @opt_bypass = undef;
>>
>> my $i;
>>
>> for ($i = 0; $i <= $#ARGV; $i++) {
>> if ($ARGV[$i] eq "--file") {
>> if (++$i <= $#ARGV) {
>> $opt_file = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--ip") {
>> if (++$i <= $#ARGV) {
>> $opt_ip = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--sender") {
>> if (++$i <= $#ARGV) {
>> $opt_sender = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--helo") {
>> if (++$i <= $#ARGV) {
>> $opt_helo = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--rcpt-to") {
>> if (++$i <= $#ARGV) {
>> $opt_rcpt_to = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--debug") {
>> if (++$i <= $#ARGV) {
>> $opt_debug = int($ARGV[$i]);
>> }
>> } elsif ($ARGV[$i] eq "--local") {
>> if (++$i <= $#ARGV) {
>> $opt_local = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--trusted") {
>> if (++$i <= $#ARGV) {
>> $opt_trusted = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--guess") {
>> if (++$i <= $#ARGV) {
>> $opt_guess = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--expl") {
>> if (++$i <= $#ARGV) {
>> $opt_exp = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--max-lookup") {
>> if (++$i <= $#ARGV) {
>> $opt_max_lookup = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--sanitize") {
>> if (++$i <= $#ARGV) {
>> $opt_sanitize = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--name") {
>> if (++$i <= $#ARGV) {
>> $opt_name = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--fallback") {
>> if (++$i <= $#ARGV) {
>> $opt_fallback = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--override") {
>> if (++$i <= $#ARGV) {
>> $opt_override = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--dns") {
>> if (++$i <= $#ARGV) {
>> $opt_dns = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--pcode") {
>> if (++$i <= $#ARGV) {
>> $opt_pcode = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--fcode") {
>> if (++$i <= $#ARGV) {
>> $opt_fcode = $ARGV[$i];
>> }
>> } elsif ($ARGV[$i] eq "--bypass") {
>> if (++$i <= $#ARGV) {
>> push(@opt_bypass, $ARGV[$i]);
>> }
>> } elsif ($ARGV[$i] eq "--help") {
>> $opt_help = 1;
>> }
>> }
>>
>> if ($opt_help) {
>>
>> exit($opt_pcode);
>> }
>>
>> if (defined($opt_file)) {
>> my $ln;
>> my @hvars;
>>
>> if (!open(MFIL, "$opt_file")) {
>> print STDERR "unable to open ${opt_file}\n";
>> exit($opt_pcode);
>> }
>> # Read message info
>> $ln = <MFIL>;
>> chomp($ln);
>> @hvars = split(/;/, $ln);
>> # Discard SMTP domain
>> $ln = <MFIL>;
>> # Discard message ID
>> $ln = <MFIL>;
>> # Read MAIL FROM
>> $ln = <MFIL>;
>> chomp($ln);
>> close(MFIL);
>> # Handle both cases of early message file and spool file
>> ($opt_sender = $ln) =~ s/[^<]+<([^>]*)>.*/$1/;
>> if ($#hvars > 3) {
>> $opt_helo = $hvars[0];
>> ($opt_ip = $hvars[1]) =~ s/([^:]+):[0-9]+/$1/;
>> } else {
>> ($opt_ip = $hvars[0]) =~ s/([^:]+):[0-9]+/$1/;
>> }
>> }
>>
>> if (!defined($opt_helo) && ($opt_sender =~ /\@/)) {
>> ($opt_helo = $opt_sender) =~ s/.*\@(.*)/$1/;
>> }
>>
>> for ($i = 0; $i <= $#opt_bypass; $i++) {
>> if ($opt_ip =~ /$opt_bypass[$i]/) {
>> if ($opt_debug) {
>> print "whitelist ip ${opt_ip}\n";
>> }
>> exit($opt_pcode);
>> }
>> }
>>
>> my $query = new Mail::SPF::Query(ipv4 => $opt_ip,
>> sender => $opt_sender,
>> helo => $opt_helo,
>> local => $opt_local,
>> trusted => $opt_trusted,
>> guess => $opt_guess,
>> default_explanation => $opt_exp,
>> max_lookup => $opt_max_lookup,
>> sanitize => $opt_sanitize,
>> myhostname => $opt_name,
>> fallback => $opt_fallback,
>> override => $opt_override,
>> debug => $opt_debug,
>> );
>>
>> my $rcode = ($query->result eq "fail") ? $opt_fcode: $opt_pcode;
>>
>> if ($opt_debug) {
>> print $query->result . "\n";
>> }
>>
>> exit($rcode);
>>
>>
>>
>>
>> Vinny Wadding wrote:
>>
>>
>>> Hi Guys,
>>>
>>> I am looking at the SPF script that Davide published, I am wondering if
>>> any one else was using this filter? I have been trying to trawl net
>>> and forums for any information about it, but there doesn't seem to be
>>> any info about how it works, or what parameters you pass it etc.
>>>
>>> So I was wondering, If people have got it up and running what parameters
>>> are you passing it from xmail? How did you have it configured as a
>>> filter? Im sure im not the only person who is out there looking for
>>> this info.
>>>
>>> Thanks
>>>
>>>
>>>
>>>
>>>
>>>
>>> -
>>> To unsubscribe from this list: send the line "unsubscribe xmail" in
>>> the body of a message to [EMAIL PROTECTED]
>>> For general help: send the line "help" in the body of a message to
>>> [EMAIL PROTECTED]
>>>
>>>
>>>
>>>
>>>
>> -
>> To unsubscribe from this list: send the line "unsubscribe xmail" in
>> the body of a message to [EMAIL PROTECTED]
>> For general help: send the line "help" in the body of a message to
>> [EMAIL PROTECTED]
>>
>>
>>
>>
>
>
-
To unsubscribe from this list: send the line "unsubscribe xmail" in
the body of a message to [EMAIL PROTECTED]
For general help: send the line "help" in the body of a message to
[EMAIL PROTECTED]