fetchspool
上传用户:xxcykj
上传日期:2007-01-04
资源大小:727k
文件大小:1k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. #!/bin/sh -
  2. #
  3. # Quick hack for fetchmail to locally spool messages.
  4. #
  5. # To spool:
  6. #     fetchmail --mda "fetchspool -t %T %F"
  7. # To de-spool
  8. #     fetchspool -f
  9. #
  10. # Robert de Bath  <robert@mayday.cix.co.uk>
  11. # updated by william boughton <bill@xencat.demon.co.uk>
  12. # 4th/10/1998 and tested
  13. #
  14. # William Boughton comments:
  15. # Still has some potential problems, with using inline from address.
  16. # The use of _ is bad because fetchmails uses this if it notices
  17. # shell escapes.
  18. # 10th/11/1998
  19. # Changed to using 3 _@@s to delimit the message, i hope this is ok.
  20. # Whilst i have tested and used this script, with my demon account and
  21. # SDPS, it may still have serious problems, that i've not noticed etc.
  22. MAILSPOOL=/tmp/spool
  23. if [ "$1" != "-f" ]
  24. then
  25.    if [ "$1" = "-t" ]
  26.    then 
  27. ADDR="$2"
  28. FROM="$3"
  29.    else 
  30. ADDR="$1"
  31. FROM="$2"
  32.    fi
  33.    cat - > $MAILSPOOL/tmp.$$     || exit 1
  34.    mv $MAILSPOOL/tmp.$$ "$MAILSPOOL/msg.`date +%j%H%M%S`$$.to.${ADDR}_@@${FROM}"  || exit 1
  35.    exit 0
  36. else
  37.    for i in $MAILSPOOL/msg.*.to.*
  38.    do
  39.       [ -f "$i" ] || continue
  40.      # TO="`echo "$i" | sed 's/^msg.[^.]*.to.//'`"
  41. TO=$(basename $i | sed -e 's/^msg.[^.]*.to.//' -e 's/_@@.*$//')
  42. FROM=$(basename $i | sed 's/^msg.[^.]*.to.*_@@//')
  43. # need the <> so for bounces to have a proper from addr
  44. echo the to was <$TO>  and the from <$FROM>
  45.       /usr/lib/sendmail -f <${FROM}> -oem "$TO" < "$i" ||
  46.       {
  47.          echo "Sendmail failed on `basename "$i"`"
  48.  continue
  49.       }
  50.       rm -f "$i"
  51.    done
  52.    exit 0
  53. fi