--- /dev/null
+#!/bin/sh
+#
+# edit-header - helper script to append/replace/remove headers with mutt
+#
+# Based on an idea by David Champion <dgc at uchicago.edu>
+#
+# Copyright © 2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+set -eu
+
+if [ ! -x "$(command -v formail)" ]; then
+  echo E: formail not installed. >&2
+  exit 1
+fi
+
+header="${1:-}"
+if [ -z "$header" ]; then
+  echo "E: no header specified" >&2
+  exit 1
+fi
+
+get_header_contents()
+{
+  local contents
+  printf "Enter ${1:-header} contents: " >/dev/tty
+  read contents </dev/tty
+  echo "$contents"
+}
+
+script="${0%/*}/${2:-}"
+if [ -f "$script" ] && [ -x "$script" ]; then
+  if [ -z "${__RLWRAPPED:-}" ] && [ -x $(command -v rlwrap) ]; then
+    __RLWRAPPED=true exec rlwrap "$0" "$@"
+  fi
+
+  contents_source="$script"
+  shift
+else
+  contents_source=get_header_contents
+fi
+
+editor=
+case "$0" in
+  *append-header|*supersede-header|*replace-header)
+    contents="${2:-}"
+    [ -n "$contents" ] || contents="$(eval $contents_source $header)"
+    case "$0" in
+      *append-header) flag=-A;;
+      *supersede-header) flag=-i;;
+      *replace-header) flag=-I;;
+    esac
+    editor="${0%/*}/filter-proxy formail $flag \'$header: $contents\'"
+    ;;
+
+  *remove-header)
+    editor="${0%/*}/filter-proxy formail -I \'$header:\'"
+    ;;
+
+  *)
+    echo "E: unknown invocation: ${0##*/}" >&2
+    exit 1
+    ;;
+
+esac
+
+echo "set my_editor=\"\$editor\""
+echo "set my_filter=\"$editor\""
+echo -n "push '"
+echo -n "<enter-command>set editor=\"\$my_filter\"<enter>"
+echo -n "<edit>"
+echo -n "<enter-command>set editor=\"\$my_editor\"<enter>"
+echo -n "<enter-command>unset my_filter<enter>"
+echo -n "<enter-command>unset my_editor<enter>"
+echo "'"