#!/bin/sh mailq() { /usr/sbin/sendmail.real -bp "$@" } newaliases() { /usr/sbin/sendmail.real -bi "$@" } client() { for INARG in "$@"; do case "$INARG" in -odi) OUTARG="-odb" ;; *) OUTARG="$INARG" ;; esac OUTARGS="$OUTARGS $OUTARG" done cat > /tmp/$PROGNAME.$$.sendmail ( /usr/sbin/sendmail.real $OUTARGS < /tmp/$PROGNAME.$$.sendmail rm -f /tmp/$PROGNAME.$$.sendmail ) & } passthrough() { /usr/sbin/sendmail.real "$@" } unknown() { logger -i -t sendmail.wrapper -p mail.crit "invalid mode" } main() { MODE=unknown case `basename $0` in mailq) MODE=mailq ;; newaliases) MODE=newaliases ;; sendmail) MODE=sendmail ;; esac if [ $MODE = sendmail ]; then for ARG in "$@"; do [ "X$ARG" = X-bs ] && MODE=passthrough [ "X$ARG" = X-q ] && MODE=passthrough done [ $MODE = sendmail ] && MODE=client fi logger -i -t sendmail.wrapper "called as '$0 $*', selected mode is $MODE" $MODE "$@" } main "$@"