From 2a17dce6783c810dca5e3648085113002e2bd6ba Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Tue, 15 Jun 2010 13:37:09 +0200 Subject: [PATCH 1/1] implement attachment check as sendmail check --- .mutt/sendmail-checks.d/check-attachments | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 .mutt/sendmail-checks.d/check-attachments diff --git a/.mutt/sendmail-checks.d/check-attachments b/.mutt/sendmail-checks.d/check-attachments new file mode 100755 index 0000000..760822d --- /dev/null +++ b/.mutt/sendmail-checks.d/check-attachments @@ -0,0 +1,35 @@ +#!/bin/sh +# +# check-attachments — check that referenced attachments are actually attached +# +# This is based on the idea behind +# http://www.vim.org/scripts/download_script.php?src_id=3165: if the mail body +# matches a given regular expression, then check whether there are also +# non-PGP MIME parts in the message, or else refuse to send the message. +# +# You can override the checking by adding the X-No-Attachments header to the +# message. +# +# Copyright © 2010 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +set -eu + +RE_ENGLISH='attach(ing|ed|ment)?|included\W+(with|in)\W+th(is|e\W+(curr|pres)ent)\W+mail' +RE_GERMAN='an(gehängt|hängsel|bei)|bei(gefügt|lage)|(im|siehe)\W+(anhang|beilage)' +RE_FRENCH='attach(e|er|ée?s?|ement|ant)' +OVERRIDE_HEADER=X-No-Attachments + +if ! grep -q "^${OVERRIDE_HEADER}:" "$1" \ + && egrep -ziq "($RE_ENGLISH|$RE_GERMAN|$RE_FRENCH)" "$1"; then + + nr_attach=$(sed -rne 's/^Content-Type:[[:space:]]+//p' "$1" | + egrep -cv '^(multipart/|application/pgp-signature)') + + if [ $nr_attach -lt 2 ]; then + echo >&2 "E: the mail seems to reference an attachment, but there seems" + echo >&2 "to be no non-PGP MIME part." + echo >&2 "E: (add the $OVERRIDE_HEADER header to override the check)." + exit 1 + fi +fi -- 2.39.5