home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / nn.tar / nn-6.5.1 / contrib / recmail.sh < prev   
Linux/UNIX/POSIX Shell Script  |  1995-04-29  |  2KB  |  84 lines

  1. #!/bin/sh
  2. #  This is my version of a mailer that parses the To: lines and invokes the
  3. #  domain-based mailer        mfr Jul 89
  4.  
  5. export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
  6.  
  7. # System dependencies
  8.  
  9. mailer="/usr/local/smtp"
  10. # your site name
  11. case undef in
  12. define) sitename=`hostname` ;;
  13. undef) sitename="puppsr" ;;
  14. esac
  15.  
  16. test=test
  17. sed=/bin/sed
  18. echo=/bin/echo
  19. cat=/bin/cat
  20. grep=/bin/grep
  21. rm=/bin/rm
  22.  
  23. dotdir=${DOTDIR-${HOME-$LOGDIR}}
  24. tmpart=$dotdir/.letter
  25.  
  26.     $cat >$tmpart
  27.  
  28.     case $mailer in
  29.     *sendmail)
  30.         $mailer -t <$tmpart
  31.         ;;
  32. # but recmail does not know about Bcc, alas
  33.     *recmail)
  34.         $mailer <$tmpart
  35.         ;;
  36.     *)
  37.         set X `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'`
  38.         shift
  39.         set X "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'`
  40.         shift
  41.         set X "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'`
  42.         shift
  43.         for i in "$@"
  44.         do
  45.         thost=`echo $i | cut -s -d@ -f2`
  46.         recip=`echo $i | cut -s -d@ -f1`
  47.         sender=${LOGNAME}@${sitename}
  48.         $grep -v "^Bcc:"  <$tmpart | $mailer $thost $sender $recip
  49.         done
  50.         ;;
  51.     esac
  52.     case $? in
  53.     0)
  54.         state=cleanup
  55.         ;;
  56.     *)
  57.         state=rescue
  58.         ;;
  59.     esac
  60. case $state in
  61.     rescue)
  62.     $cat $tmpart >> ${HOME-$LOGDIR}/dead.letter
  63.     $echo "Message appended to ${HOME-$LOGDIR}/dead.letter"
  64.     $echo "A copy may be temporarily found in $tmpart"
  65.     exit
  66.     ;;
  67.     cleanup)
  68.     case "${MAILRECORD-none}" in
  69.     none)
  70.         ;;
  71.     *)  if $cat $tmpart >> $MAILRECORD; then
  72.         $echo "Article appended to $MAILRECORD"
  73.         else
  74.         $echo "Cannot append to $MAILRECORD"
  75.         fi
  76.         ;;
  77.     esac
  78.     exit
  79.     ;;
  80.     esac
  81. done
  82.  
  83.  
  84.