Re: [Hampshire] Bash script for forwarding spam from an mbox

Top Page

Reply to this message
Author: Graeme Hilton
Date:  
To: Hampshire LUG Discussion List
Subject: Re: [Hampshire] Bash script for forwarding spam from an mbox
Hugo Mills wrote:
> On Mon, Jul 16, 2007 at 09:59:02PM +0100, Graeme Hilton wrote:
>> Does anyone have any pointers to a shell scripting tutorial that might
>> be able to help me split out the emails from an mbox? Googling for
>> various combinations of "shell script mail forward mbox" doesn't give me
>> much to work with.
>
>    Probably the thing to do is something like this:

>
> mkdir split && cd split
> csplit -b %04d ${MBOXFILE} '/^From /' '{*}'
>
>    That will generate a file in the directory "split" (put it in /tmp
> or wherever else you want) for each mail in the mailbox.

>


Thanks Hugo, I've expanded on this with the following script*:

#!/bin/sh
# A script to report undetected spam to Plusnet
# command line parameters are <username> and <root folder>

cd /tmp && mkdir -p split && cd split

csplit -b %04d /home/$1/mail/$2/JunkSpam '/From /' '{*}' > /dev/null

#following three lines all together.
files="$(/bin/grep -H '^Subject:' /tmp/split/xx???? |
    /bin/grep -v [[][-]SPAM[-] |
    /bin/grep -o '[x]\{2\}[[:digit:]]\{4\}')"


#echo $files

for n in $files
do
    echo `grep '^Subject:' $n`
    mail -s Spam spam@??? < $n
done


rm xx????
cd ..
rm -rd split

#End of file

It should be noted that this is my first attempt at doing anything
remotely complex in a script. Any suggestions for tidying it up are
more than welcome.

--
Graeme Hilton