mcomp: support Outbox: (and store drafts there), add a message-id if possible

pull/2/head
Christian Neukirchen 8 years ago
parent 5a4b018c73
commit 8e40c85f60

50
mcomp

@ -9,11 +9,26 @@ reffmt() {
sed 's/^[^<]*//g;s/[^>]*$//g;s/>[^<]*</>\n</g' | uniq | sed 's/^/ /' sed 's/^[^<]*//g;s/[^>]*$//g;s/>[^<]*</>\n</g' | uniq | sed 's/^/ /'
} }
i=0 msgid() {
while [ -f "snd.$i" ]; do mgenmid 2>/dev/null | sed 's/.*/Message-Id: &/'
i=$((i+1)) }
done
draft="snd.$i" outbox=$(mhdr -h outbox ~/.santoku/profile)
if [ -z "$outbox" ]; then
i=0
while [ -f "snd.$i" ]; do
i=$((i+1))
done
draft="snd.$i"
draftmime="snd.$i.mime"
else
draft="$(true | mdeliver -v -XD "$outbox")"
if [ -z "$draft" ]; then
echo "$0: failed to create draft in outbox $outbox." 1>&2
exit 1
fi
draftmime="$(echo $draft | sed 's,\(.*\)/cur/,\1/tmp/mime-,')"
fi
{ {
case "$0" in case "$0" in
@ -30,6 +45,7 @@ draft="snd.$i"
from=$(mhdr -h local-mailbox ~/.santoku/profile) from=$(mhdr -h local-mailbox ~/.santoku/profile)
[ "$from" ] && echo "From: $from" [ "$from" ] && echo "From: $from"
cat ~/.santoku/headers 2>/dev/null cat ~/.santoku/headers 2>/dev/null
msgid
echo echo
echo echo
;; ;;
@ -57,6 +73,7 @@ draft="snd.$i"
mhdr -h message-id "$1" mhdr -h message-id "$1"
} | reffmt } | reffmt
echo "In-Reply-To: $(mhdr -h message-id "$1")" echo "In-Reply-To: $(mhdr -h message-id "$1")"
msgid
echo echo
echo "$(mhdr -d -h from "$1") wrote:" echo "$(mhdr -d -h from "$1") wrote:"
@ -76,10 +93,15 @@ c=e
while :; do while :; do
case "$c" in case "$c" in
s|send) s|send)
if [ -e $draft.mime ]; then if [ -e $draftmime ]; then
if [ $draft -ot $draft.mime ]; then if [ $draft -ot $draftmime ]; then
if sendmail -t <$draft.mime; then if sendmail -t <$draftmime; then
rm $draft $draft.mime if [ "$outbox" ]; then
mv $draftmime $draft
mflag -d $draft
else
rm $draft $draftmime
fi
exit 0 exit 0
else else
echo "mcomp: sendmail failed, kept draft $draft" echo "mcomp: sendmail failed, kept draft $draft"
@ -91,7 +113,11 @@ while :; do
fi fi
else else
if sendmail -t <$draft; then if sendmail -t <$draft; then
rm $draft if [ "$outbox" ]; then
mflag -d $draft
else
rm $draft
fi
exit 0 exit 0
else else
echo "mcomp: sendmail failed, kept draft $draft" echo "mcomp: sendmail failed, kept draft $draft"
@ -104,8 +130,8 @@ while :; do
exit 1 exit 1
;; ;;
m|mime) m|mime)
mmime <$draft >$draft.mime mmime <$draft >$draftmime
mshow -t ./$draft.mime mshow -t ./$draftmime
c= c=
;; ;;
e|edit) e|edit)

Loading…
Cancel
Save