#!/bin/sh # mcomp [TO] - compose mail i=0 while [ -f "snd.$i" ]; do i=$((i+1)) done draft="snd.$i" { case "$0" in *mcomp*) echo -n "To: $1" [ "$#" -ge 1 ] && shift for rcpt; do echo -n ", $rcpt" done echo echo "Cc: " echo "Bcc: " echo "Subject: " cat ~/.santoku/headers 2>/dev/null echo echo ;; *mrepl*) [ "$#" -eq 0 ] && set -- . # XXX reply-all echo "To: $(mhdr -from "$1")" echo "Cc: " echo "Bcc: " s=$(mhdr -subject "$1") os= while [ "$os" != "$s" ]; do os=$s s=${s% } s=${s%[Rr][Ee]:} s=${s%[Aa][Ww]:} s=${s%[Ff][Ww][Dd]:} done echo "Subject: Re: $s" cat ~/.santoku/headers 2>/dev/null echo -n "References:" { mhdr -references "$1" mhdr -message-id "$1" } | sed 's/^[^<]*//g;s/[^>]*$//g;s/>[^<]*\n /' echo esac if [ -f ~/.signature ]; then printf '%s\n' '-- ' cat ~/.signature fi } >$draft c=e while :; do case "$c" in s|send) if [ -e $draft.mime ]; then if [ $draft -ot $draft.mime ]; then if sendmail -t <$draft.mime; then rm $draft $draft.mime exit 0 else echo "mcomp: sendmail failed, kept draft $draft" exit 2 fi else echo "mcomp: re-run mmime first." c= fi else if sendmail -t <$draft; then rm $draft exit 0 else echo "mcomp: sendmail failed, kept draft $draft" exit 2 fi fi ;; c|cancel) echo "mcomp: cancelled draft $draft" exit 1 ;; m|mime) mmime <$draft >$draft.mime mshow -t ./$draft.mime c= ;; e|edit) c= if ! ${EDITOR:-vi} $draft; then c=c fi ;; *) echo -n "What now? ([s]end, [c]ancel, [e]dit, [m]ime) " read -r c ;; esac done