home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / sendmail / uk-sendmail2.1 / Support / checkaddr < prev    next >
Encoding:
Text File  |  1991-06-11  |  1.6 KB  |  73 lines

  1. #!/bin/sh
  2. # shell script to verify what sendmail would do with given addresses
  3. # this version works for sendmail versions 4.40 and above
  4.  
  5. verbose=false
  6. if [ $1 = "-v" ]
  7. then
  8.     verbose=true
  9.     shift
  10. fi
  11.  
  12. trap "/bin/rm /tmp/ver.$$; exit" 1 2 3 15
  13.  
  14. while [ $# -ge 1 ]
  15. do
  16.     echo -n "$1: "
  17.  
  18.     /usr/lib/sendmail -bt > /tmp/ver.$$  <<EOF
  19. 0 $1
  20. EOF
  21.  
  22.     if grep -s 'ruleset  0 returns: "^V" "local"' /tmp/ver.$$
  23.     then
  24.         if /usr/lib/sendmail -bv $1 > /tmp/ver.$$
  25.         then
  26.         echo addr OK
  27.         else
  28.         sed -n -e '/deliverable/d'    \
  29.                -e 's/\(.*\)\.\.\. \(.*\)/\2  (\1)/p' /tmp/ver.$$
  30.         fi
  31.         if $verbose
  32.         then
  33.         aliases=""
  34.         for a in `sed -n 's/\.\.\. deliverable//p' /tmp/ver.$$`
  35.         do
  36.             if [ "$a" = "$1" ]
  37.             then
  38.             echo "Routed to:  channel=local,  addr=$a"
  39.             else
  40.             aliases="$aliases $a"
  41.             fi
  42.         done
  43.         if [ -n "$aliases" ]
  44.         then
  45.             echo "Aliased to:$aliases"
  46.             $0 $aliases
  47.         fi
  48.         fi
  49.     elif grep -s 'ruleset  0 returns: "^V" "error"' /tmp/ver.$$
  50.     then
  51.         sed -n -e 's/"\([^"]*\)"/\1/g'    \
  52.         -e '/ruleset  0 returns:/s/.*^X //p' /tmp/ver.$$
  53.     else
  54.         echo addr OK
  55.         if $verbose
  56.         then
  57.         sed -n '/ruleset  3 returns:/s/.*returns: //p' /tmp/ver.$$ |
  58.         sed -n -e '$s/"\([^"]*\)"/\1/g' \
  59.             -e '$s/ \([!.@%]\) /\1/g'    \
  60.             -e '$s/^/Normalised to: /p' 
  61.  
  62.         sed -n '/ruleset  0 returns:/s/.*^V" //p' /tmp/ver.$$ |
  63.         sed -e 's/"\([^"]*\)"/\1/g'    \
  64.             -e 's/\(.*\) ^W \(.*\) ^X \(.*\)/Routed to:  channel=\1,  host=\2,  addr=\3/'\
  65.             -e 's/\(.*\) ^X \(.*\)/Routed to:  channel=\1,  addr=\2/'    \
  66.             -e 's/ \([!.@%]\) /\1/g'
  67.         fi
  68.     fi
  69.  
  70.     /bin/rm /tmp/ver.$$
  71.     shift
  72. done
  73.