X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/6f1685ce591af0b875541378c38e8aaa2d09e048..a83d50d5a64488deb3796bbd0ca0a03b0516cc77:/.mutt/sendmail?ds=inline diff --git a/.mutt/sendmail b/.mutt/sendmail index 635ff3e..80fd4a1 100755 --- a/.mutt/sendmail +++ b/.mutt/sendmail @@ -10,12 +10,12 @@ # Copyright © 2010 martin f. krafft # Released under the terms of the Artistic Licence 2.0 # -set -eu +set -eux CHECKSDIR="$HOME/.mutt/sendmail-checks.d" SENDMAIL="/usr/sbin/sendmail -oem -oi" -TMPFILE=$(tempfile -p mutt-sendmail -s .msg) +TMPFILE=$(mktemp --tmpdir mutt-sendmail.XXXXXXXXXX.msg) settrap () { trap "$@" 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15; } cleanup () { rm -f "$TMPFILE"; settrap -; } settrap cleanup @@ -31,9 +31,19 @@ for i in "$@"; do done cat > $TMPFILE -recipients="$recipients $(formail -czx X-Bcc-Spool: < "$TMPFILE" | tr -d ',')" + +remove_headers= +if ! formail -czx "Resent-" < "$TMPFILE" | grep -q .; then + # only do this for original mails, not bounces + recipients="$recipients $(formail -czx "X-Bcc" < "$TMPFILE" | tr -d ',')" + remove_headers="$remove_headers -IX-Bcc" +fi 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" + +recipients=$(echo "$recipients" | xargs) + +formail $remove_headers < "$TMPFILE" \ + | eval $SENDMAIL "$sendmail_args" -- "$recipients" cleanup