#!/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 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 echo "$@" >&2 exit 1 cat > $TMPFILE args=$(for a in $@; do case "$a" in (*@*) echo "--arg=$a";; esac; done) run-parts --umask=0077 --arg="$TMPFILE" $args -- "$CHECKSDIR" $SENDMAIL -- "${@#-- }" < "$TMPFILE" cleanup