X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/0898d5cf098dace711b1d991a90449eabb2e84c2..7268fe31b1ff66a337913749eaca0b98b4860830:/.mutt/sendmail diff --git a/.mutt/sendmail b/.mutt/sendmail index 3096fb0..494e3d6 100755 --- a/.mutt/sendmail +++ b/.mutt/sendmail @@ -1,5 +1,37 @@ #!/bin/sh +# +# mutt/sendmail – sendmail wrapper to enforce some checks on outgoing mails +# +# The script basically just creates a temporary file and then invokes any +# executable scripts in ~/.mutt/sendmail-checks.d in run-parts style. They +# receive the filename of a temporary file holding the message to be sent as +# $1, followed by all recipients as determined by mutt. +# +# Copyright © 2010 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# set -eu -OUTGOING=~/mail-seamus/outgoing -exec safecat $OUTGOING/tmp $OUTGOING/cur +CHECKSDIR="$HOME/.mutt/sendmail-checks.d" +SENDMAIL="/usr/sbin/sendmail -oem -oi" + +TMPFILE=$(tempfile -p mutt-sendmail -s .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 + +argtype=s +args= sendmail_args= +for i in "$@"; do + case "$argtype/$i" in + (s/--) argtype=r;; + (s/*) sendmail_args="${sendmail_args} $i";; + (r/*) args="${args} --arg=$i";; + esac +done + +cat > $TMPFILE +run-parts --umask=0077 --arg="$TMPFILE" $args -- "$CHECKSDIR" +$SENDMAIL "$sendmail_args" < "$TMPFILE" + +cleanup