X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/063bbf05f6c593a47a8ddef095ddfb63ef2dcea5..1a8deb324f0b00768f4fde043be654923326f656:/.mutt/sendmail diff --git a/.mutt/sendmail b/.mutt/sendmail index 44e91dc..635ff3e 100755 --- a/.mutt/sendmail +++ b/.mutt/sendmail @@ -16,12 +16,24 @@ CHECKSDIR="$HOME/.mutt/sendmail-checks.d" SENDMAIL="/usr/sbin/sendmail -oem -oi" TMPFILE=$(tempfile -p mutt-sendmail -s .msg) -cleanup () { rm -f "$TMPFILE"; trap - 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15; } -trap cleanup 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 +settrap () { trap "$@" 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15; } +cleanup () { rm -f "$TMPFILE"; settrap -; } +settrap cleanup + +argtype=s +recipients= sendmail_args= +for i in "$@"; do + case "$argtype/$i" in + (s/--) argtype=r;; + (s/*) sendmail_args="${sendmail_args} $i";; + (r/*) recipients="${recipients} $i";; + esac +done cat > $TMPFILE -args=$(for a in $@; do [ $a = -- ] || echo "--arg=$a"; done) -run-parts --umask=0077 --arg="$TMPFILE" $args -- "$CHECKSDIR" -$SENDMAIL -- "$@" < "$TMPFILE" +recipients="$recipients $(formail -czx X-Bcc-Spool: < "$TMPFILE" | tr -d ',')" +args=$(for i in $recipients; do echo "--arg=$i"; done) +run-parts --exit-on-error --umask=0077 --arg="$TMPFILE" $args -- "$CHECKSDIR" +formail -I X-Bcc-Spool: < "$TMPFILE" | eval $SENDMAIL "$sendmail_args" -- "$recipients" cleanup