Re: [petsupermarket.sspam@uol.com.br: RE: ...]
Hi Magnus and others...
Sorry, a little bit late, but I was not in Strasbourg...
Am 2006-03-07 17:29:26, schrieb Magnus Therning:
> Feel like sharing the procmail recipe?
>
> (I know I can go read the man-page, but I'm lazy today and my brain is a
> soft mush...)
Attached I have my little BASH script, which forward the CR's and
other unwanted stuff to configured E-mails...
The procmail recipe for immediat forward is:
:0 fw
| tdmailcrforward --smtp
:0
* ^X-TDMailCRForward:
.ATTENTION.CR/
and if you want to store the forwarded messages in your mutt
POSTPONE folder before sending
:0 fw
| tdmailcrforward --spool
:0
* ^X-TDMailCRForward:
.ATTENTION.CR/
the first time, please run 'tdmailcrforward' that it create the config
directory $HOME/.tdmailtools and the config file (which need to setup
correctly ). (It has excessiv error messages, - look into the code)
Oh yes, if the MTA fails to send the message, it save the outgoing
message in your POSTPONE folder.
Attention: Only maildir support...
But for mutt no problem to have mailbox and maildir mixed
And last not least, the Syntax for the LIST file is easy:
<offending_email>: <return_mail1>, <return_mail2>, ...
Like for our friend:
petsupermarket.sspam@uol.com.br: rhuol@uol.com.br, assineuol@uol.com.br, sos@uol.com.br, publicidade@uol.com.br, comercio.eletronico@uol.com.br, uol@uol.com.br
which is as default installed. ;-)
If you have any questions, please drop me some lines.
Greetings
Michelle Konzack
Systemadministrator
Tamay Dogan Network
Debian GNU/Linux Consultant
--
Linux-User #280138 with the Linux Counter, http://counter.li.org/
##################### Debian GNU/Linux Consultant #####################
Michelle Konzack Apt. 917 ICQ #328449886
50, rue de Soultz MSM LinuxMichi
0033/3/88452356 67100 Strasbourg/France IRC #Debian (irc.icq.com)
#!/bin/bash
# #
# Copyright 2006, Michelle Konzack All rights reserved. #
# #
# Redistribution and use in source and binary forms, with or without #
# modification, are permitted provided that the following conditions #
# are met: #
# #
# 1. Redistributions of source code must retain the above copyright #
# notice, this list of conditions and the following disclaimer. #
# #
# 2. Redistributions in binary form must reproduce the above #
# copyright notice, this list of conditions and the following #
# disclaimer in the documentation and/or other materials provided #
# with the distribution. #
# #
# 3. Neither the name of Michelle Konzack nor the names of its #
# contributors may be used to endorse or promote products derived #
# from this software without specific prior written permission. #
# #
# THIS SOFTWARE IS PROVIDED BY MICHELLE KONZACK AND CONTRIBUTORS #
# ``AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT #
# NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND #
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT #
# SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, #
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES #
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR #
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) #
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN #
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR #
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, #
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #
# #
VERSION=0.1.0
#. gettext.sh
#TEXTDOMAIN=tdmailcrforward
#TEXTDOMAINDIR=/usr/share/locale
####################################################################
# A simpel help...
if [ "$1" == "-h" ] || [ "$1" == "--help" ] || [ "$1" == "" ] ; then
echo "\
tdmailcrforward $VERSION Coded by Michelle Konzack <linux4michelle@freenet.de>
=============== This BASH script is under GNU GPL version 2.0
Usage: tdmailcrforward --spool | --smtp | --help <mailfile
ATTENTION: --smtp is the default.
Procmail recipe examples:
:0fw
|tdmailcrforward --spool
or
:0fw
|tdmailcrforward --smtp
to save the incoming CR\'s in a folder, use:
:0
* ^X-TDMailCRForward:.*
.ATTENTION.Abuse/
"
exit 0
fi
####################################################################
# Check for the existence of the config directory
CONFDIR=$HOME/.tdmailtools
if [ ! -d $CONFDIR ] ; then
mkdir -p $CONFDIR
if [ $? -ne 0 ] ; then
echo "tdmailcrforward: error: can not create the config directory »$CONFDIR«."
exit 1
fi
fi
####################################################################
# Check for the existence of the config file
CONFIG=$CONFDIR/tdmailcrforward
if [ ! -f $CONFIG ] ; then
echo "SPOOLDIR=$HOME/Maildir/.POSTPONED" >>$CONFIG
echo "" >>$CONFIG
echo "ABUSEDIR=$HOME/Maildir/.ATTENTION.Abuse" >>$CONFIG
echo "" >>$CONFIG
echo "LOGDIR=$HOME/log/tdmailcrforward" >>$CONFIG
echo "" >>$CONFIG
echo "MTAOPT=\"ssmtp -t\"" >>$CONFIG
echo "tdmailcrforward: error: you have not configured yet. please look at »$CONFDIR/tdmailcrforward«."
exit 2
fi
####################################################################
# Check for the existence of the LIST file
LIST=$CONFDIR/LIST_crforward
if [ ! -f "$LIST" ] ; then
# echo "tdmailcrforward: error: the file which hold the blacklisted senders »$CONFDIR/LIST_crforward« does not exist."
# touch $CONFDIR/LIST_crforward
echo "tdmailcrforward: error: the file which hold the blacklisted senders »$CONFDIR/LIST_crforward« does not exist, but I will set them up to a default."
echo "petsupermarket.sspam@uol.com.br: rhuol@uol.com.br, assineuol@uol.com.br, sos@uol.com.br, publicidade@uol.com.br, comercio.eletronico@uol.com.br, uol@uol.com.br" >$CONFDIR/LIST_crforward
fi
####################################################################
# Check whether the LIST file has contents or not
STR=`cat $LIST`
if [ -z "$STR" ] ; then
echo "tdmailcrforward: error: the file which hold the blacklisted senders »$CONFDIR/LIST_crforward« is empty."
exit 4
fi
####################################################################
# Check for the existence of the spool directory
. $CONFDIR/tdmailcrforward
if [ ! -d $SPOOLDIR/ ] ; then
mkdir -p $SPOOLDIR/{tmp,new,cur}
if [ $? -ne 0 ] ; then
echo "tdmailcrforward: error: can not create the spool directory »$SPOOLDIR«."
exit 5
fi
fi
####################################################################
# Check for the existence of the abuse directory
if [ ! -d $ABUSEDIR ] ; then
mkdir -p $ABUSEDIR/{tmp,new,cur}
if [ $? -ne 0 ] ; then
echo "tdmailcrforward: error: can not create the spool directory »$ABUSEDIR«."
exit 6
fi
fi
####################################################################
# Check for the existence of the log directory
if [ ! -d $LOGDIR ] ; then
mkdir -p $LOGDIR
if [ $? -ne 0 ] ; then
echo "tdmailcrforward: error: can not create the spool directory »$LOGDIR«."
exit 7
fi
fi
####################################################################
# Create two tempfiles
TMP1=`mktemp -t tdmailcrforward.1.XXXXXXXX`
if [ $? -ne 0 ] ; then
echo "tdmailcrforward: error: can not create temp files."
exit 8
fi
TMP2=`mktemp -t tdmailcrforward.2.XXXXXXXX`
if [ $? -ne 0 ] ; then
rm -f $TMP1
echo "tdmailcrforward: error: can not create temp files."
exit 8
fi
####################################################################
# Now we catch the stdin
cat /dev/stdin >$TMP1
####################################################################
# Our main progi starts here
TO=`cat $TMP1 |formail -czx To:`
FROMORIG=`cat $TMP1 |formail -czx From:`
MSGIDORIG=`cat $TMP1 |formail -czx Message-Id:`
LOGDATE=`date "+%Y-%m"`
DATELOG=`date "+%F %R:%S"`
echo "$DATELOG : $FROMORIG" >$LOGDIR/$LOGDATE.log
FROM=`echo "$FROMORIG" |sed -e "s/^.*<//;s/>*$//"`
RECP=`grep "^$FROM: " $LIST`
if [ $? -eq 0 ] ; then
RECP=`echo "$RECP" |cut -d " " -f2-`
DATE=`date -R`
MSGID=`date +%s`
HN=`hostname --fqdn`
echo "\
From: $TO
To: $RECP
Date: $DATE
Subject: Recipient does not like Challange Reponses
Message-Id: <$MSGID@$HN>
In-Reply-To: $MSGIDORIG
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Who ever you are,
please keep in mind, that you receive this automated message after I
have received many others from the same address which bothering me.
You or your mail relay has send an unwanted challenge reponse to me
for a person I do not know. This is SPAM !
If you do not want further forwarded messages in your mailbox, stop
SPAMING me with such stupid messages. And then think about spamers
which forging From: adresses. So your challenge reponse system harm
innocent peoples and internet users.
Friendliest
Michelle Konzack
Systemadministrator
Tamay Dogan Network
Debian GNU/Linux Consultant
######################################################################
# #
# Following a copy of the las SPAM you send me #
# #
######################################################################
" >>$TMP2
cat $TMP1 >>$TMP2
if [ "$1" == "--spool" ] ; then
let X=1
HNA=`hostname --alias`
while [ -f $SPOOLDIR/$MSGID.$X.$HNA ] ; do
let X=$X+1
done
formail -f -i "X-TDMailCRForward: spool" <$TMP2 >>$SPOOLDIR/new/$MSGID.$X.$HNA
else
################################################################
# We Try to send out the message
let X=1
HNA=`hostname --alias`
$MTAOPT <$TMP2 >/dev/null 2>&1
if [ $? -eq 0 ] ; then
##############################################################
# OK, it was correctly send and now we try
# to save the message with an unique name
while [ -f $ABUSEDIR/cur/$MSGID.$X.$HNA:2,S ] ; do
let X=$X+1
done
formail -f -i "X-TDMailCRForward: smtp" < $TMP2 >$ABUSEDIR/cur/$MSGID.$X.$HNA:2,S
else
##############################################################
# OK, there was an error while sending which mean, we
# should try to save the message with an unique name
while [ -f $SPOOLDIR/new/$MSGID.$X.$HNA ] ; do
let X=$X+1
done
formail -f -i "X-TDMailCRForward: spool" < $TMP2 >$SPOOLDIR/new/$MSGID.$X.$HNA
fi
fi
formail -f -i "X-TDMailCRForward: true" < $TMP1
fi
rm -f $TMP1 $TMP2
exit 0
Reply to: