From 3f15d918fcee49e4de81b182ecee9171d27e8be9 Mon Sep 17 00:00:00 2001 From: Johannes Thyssen Tishman Date: Thu, 22 Jun 2023 19:26:39 +0200 Subject: [PATCH] Add Drafts profile key Instead of saving drafts messages together with sent messages when the Outbox key is set in profile, allow the user to set a Drafts key to store them separately. --- man/mblaze-profile.5 | 7 +++++-- mcom | 17 ++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/man/mblaze-profile.5 b/man/mblaze-profile.5 index 65d1b3d..0e7b34a 100644 --- a/man/mblaze-profile.5 +++ b/man/mblaze-profile.5 @@ -52,8 +52,11 @@ generation in .It Li Outbox\&: If set, .Xr mcom 1 -will create draft messages in this maildir, -and save messages there after sending. +will save messages in this maildir after sending. +.It Li Drafts\&: +If set, +.Xr mcom 1 +will create draft messages in this maildir. .It Li Reply-From\&: A comma-separated list of display name and mail address pairs, formatted like this: .Dl Li Primary Name , Name v.2 , \[dq]Name, My Third\[dq] , ... diff --git a/mcom b/mcom index 397cb5f..f2fb708 100755 --- a/mcom +++ b/mcom @@ -235,8 +235,8 @@ esac hdrs="$(printf '%s\n' "${hdrs#$NL}" | mhdr -)" -outbox=$(mhdr -h outbox "$MBLAZE/profile" | sed "s:^~/:$HOME/:") -if [ -z "$outbox" ]; then +draftbox=$(mhdr -h drafts "$MBLAZE/profile" | sed "s:^~/:$HOME/:") +if [ -z "$draftbox" ]; then if [ -z "$resume" ]; then i=0 while [ -f "snd.$i" ]; do @@ -249,13 +249,13 @@ if [ -z "$outbox" ]; then draftmime="$draft.mime" else if [ -z "$resume" ]; then - draft="$(true | mdeliver -v -c -XD "$outbox")" + draft="$(true | mdeliver -v -c -XD "$draftbox")" if [ -z "$draft" ]; then - printf '%s\n' "$0: failed to create draft in outbox $outbox." 1>&2 + printf '%s\n' "$0: failed to create draft in outbox $draftbox." 1>&2 exit 1 fi elif [ -z "$draft" ]; then - draft=$(mlist -D "$outbox" | msort -r -M | sed 1q) + draft=$(mlist -D "$draftbox" | msort -r -M | sed 1q) fi draftmime="$(printf '%s\n' "$draft" | sed 's,\(.*\)/cur/,\1/tmp/mime-,')" fi @@ -424,6 +424,7 @@ fi automime= c=$defaultc +outbox=$(mhdr -h outbox "$MBLAZE/profile" | sed "s:^~/:$HOME/:") while :; do case "$c" in s|send) @@ -446,7 +447,8 @@ while :; do if $sendmail <"$draftmime"; then if [ "$outbox" ]; then mv "$draftmime" "$draft" - mflag -d -S "$draft" + mdeliver -c -XS "$outbox" < "$draft" + rm "$draft" else rm "$draft" "$draftmime" fi @@ -464,7 +466,8 @@ while :; do stampdate "$draft" if $sendmail <"$draft"; then if [ "$outbox" ]; then - mflag -d -S "$draft" + mdeliver -c -XS "$outbox" < "$draft" + rm "$draft" else rm "$draft" fi