#!/bin/sh - # # Quick hack for fetchmail to locally spool messages. # # To spool: # fetchmail --mda "fetchspool -t %T %F" # To de-spool # fetchspool -f # # Robert de Bath # updated by william boughton # 4th/10/1998 and tested # # William Boughton comments: # Still has some potential problems, with using inline from address. # The use of _ is bad because fetchmails uses this if it notices # shell escapes. # 10th/11/1998 # Changed to using 3 _@@s to delimit the message, i hope this is ok. # Whilst i have tested and used this script, with my demon account and # SDPS, it may still have serious problems, that i've not noticed etc. MAILSPOOL=/tmp/spool if [ "$1" != "-f" ] then if [ "$1" = "-t" ] then ADDR="$2" FROM="$3" else ADDR="$1" FROM="$2" fi cat - > $MAILSPOOL/tmp.$$ || exit 1 mv $MAILSPOOL/tmp.$$ "$MAILSPOOL/msg.`date +%j%H%M%S`$$.to.${ADDR}_@@${FROM}" || exit 1 exit 0 else for i in $MAILSPOOL/msg.*.to.* do [ -f "$i" ] || continue # TO="`echo \"$i\" | sed 's/^msg.[^.]*.to.//'`" TO=$(basename $i | sed -e 's/^msg.[^.]*.to.//' -e 's/_@@.*$//') FROM=$(basename $i | sed 's/^msg.[^.]*.to.*_@@//') # need the \<\> so for bounces to have a proper from addr echo the to was \<$TO\> and the from \<$FROM\> /usr/lib/sendmail -f \<${FROM}\> -oem "$TO" < "$i" || { echo "Sendmail failed on `basename \"$i\"`" continue } rm -f "$i" done exit 0 fi