# Bourne shell code to send out multiple attachments
# This code was ripped out of an autoresponder script
# Uses mime.types file ($MIMECONF) with following format:

# Ext:Mime/type
# doc:application/msword
# pdf:application/pdf
# gif:image/gif

SENDER=some_user@some.domain
TOPDIR=/usr/local/lib/autoresponder
FILEDIR=${TOPDIR}/files
MAILFILE=/tmp/autoresponder.mail
WRKFILE=/tmp/autoresponder.wrk
ERRFILE=/tmp/autoresponder.err
MIMECONF=/usr/local/lib/mime.types
TXTFILE=/a/text/file
DOCS="word.doc excel.xls chart.pdf"

echo "\nThis is a MIME multipart mail message.\n" > $WRKFILE
echo "--boundary-line" >> $WRKFILE
echo "Content-Type: text/plain; charset=US-ASCII\n" >> $WRKFILE
cat $TXTFILE >> $WRKFILE

for DOC in $DOCS
do
   FILE=${FILEDIR}/${DOC}
   EXT=`echo $DOC | cut -d"." -f2`
   # See if the file has a known MIME type for the extension
   MIMETYPE=`grep -i "^${EXT}:" $MIMECONF | cut -d":" -f2` 
   if [ "$MIMETYPE"x = "x" ]
   then
      ERRSUBJECT="Errors in autoresponder mime.types file"
      echo "The document \"$DOC\" in for the following line did" >> $ERRFILE
      echo "not have corresponding MIME type for the file extension \"${EXT}\". Please" >> $ERRFILE
      echo "correct the problem." >> $ERRFILE
         echo $DOC >> $WRKFILE
   else
      echo "\n--boundary-line" >> $WRKFILE
      case $EXT in
      TXT|txt)
         echo "Content-Type: text/plain\n" >> $WRKFILE
         cat $FILE >> $WRKFILE
      ;;
      HTM|htm)
         echo "Content-Type: text/html;" >> $WRKFILE
         echo "        name=\"$DOC\"" >> $WRKFILE
         echo "Content-Transfer-Encoding: 7bit" >> $WRKFILE
         echo "Content-Disposition: attachment;" >> $WRKFILE
         echo "        filename=\"$DOC\"\n" >> $WRKFILE
         cat $FILE >> $WRKFILE
      ;;
      *)
         echo "Content-Type: $MIMETYPE;" >> $WRKFILE
         echo "        name=\"$DOC\"" >> $WRKFILE
         echo "Content-Transfer-Encoding: base64" >> $WRKFILE
         echo "Content-Disposition: attachment;" >> $WRKFILE
         echo "        filename=\"$DOC\"\n" >> $WRKFILE
         /usr/local/bin/mmencode $FILE >> $WRKFILE
      ;;
      esac
   fi
done

echo "\n--boundary-line--" >> $WRKFILE
echo "From: you@your.domain (Your Name)" > $MAILFILE
echo "Reply-To: you@your.domain" >> $MAILFILE
echo "To: $SENDER" >> $MAILFILE
echo "Subject: Whatever you want" >> $MAILFILE
echo "Mime-Version: 1.0" >> $MAILFILE
echo "Content-Type: multipart/mixed; boundary=\"boundary-line\"" >> $MAILFILE
echo "X-Mailer: My Autoresponder v1.0" >> $MAILFILE
echo "X-Credit: MIME encoding using \"metamail\"" >> $MAILFILE
echo "\n" >> $MAILFILE

if [ -f $WRKFILE ]
then
   cat $WRKFILE >> $MAILFILE
fi

if [ -f $ERRFILE ]
then
     mailx -s"Autoresponder error" postmaster < $ERRFILE
fi

if [ -f $MAILFILE ]
then
     /usr/lib/sendmail -t $SENDER < $MAILFILE
fi

rm -f $WRKFILE $MAILFILE $ERRFILE