|
|
@ -68,11 +68,21 @@ MBLAZE=${MBLAZE:-$HOME/.mblaze}
|
|
|
|
sendmail=$(mhdr -h sendmail "$MBLAZE/profile")
|
|
|
|
sendmail=$(mhdr -h sendmail "$MBLAZE/profile")
|
|
|
|
sendmail_args=$(mhdr -h sendmail-args "$MBLAZE/profile")
|
|
|
|
sendmail_args=$(mhdr -h sendmail-args "$MBLAZE/profile")
|
|
|
|
sendmail="${sendmail:-sendmail} ${sendmail_args:--t}"
|
|
|
|
sendmail="${sendmail:-sendmail} ${sendmail_args:--t}"
|
|
|
|
|
|
|
|
default_from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hdrs=
|
|
|
|
resume=
|
|
|
|
resume=
|
|
|
|
case "$0" in
|
|
|
|
case "$0" in
|
|
|
|
*mcom*)
|
|
|
|
*mcom*)
|
|
|
|
if [ "$1" = -r ]; then
|
|
|
|
hdr=to
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
|
|
|
|
--)
|
|
|
|
|
|
|
|
# -- is like -to, really
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
hdr=to
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
-r)
|
|
|
|
shift
|
|
|
|
shift
|
|
|
|
resume=1
|
|
|
|
resume=1
|
|
|
|
if [ "$#" -gt 0 ]; then
|
|
|
|
if [ "$#" -gt 0 ]; then
|
|
|
@ -80,10 +90,90 @@ case "$0" in
|
|
|
|
draft="$1"
|
|
|
|
draft="$1"
|
|
|
|
shift
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
-??*)
|
|
|
|
|
|
|
|
hdr=${1#-}
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
[!-]*)
|
|
|
|
|
|
|
|
hdrs="$hdrs$NL$(printf '%s: %s\n' "${hdr}" "$1")"
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
printf 'mcom: invalid argument %s\n' "$1" 1>&2
|
|
|
|
|
|
|
|
exit 1;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
*mfwd*)
|
|
|
|
|
|
|
|
hdr=
|
|
|
|
|
|
|
|
raw=
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
|
|
|
|
--)
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
break;;
|
|
|
|
|
|
|
|
-r)
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
raw=1;;
|
|
|
|
|
|
|
|
-??*)
|
|
|
|
|
|
|
|
hdr=${1#-}
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
[!-]*)
|
|
|
|
|
|
|
|
[ -z "$hdr" ] && break;
|
|
|
|
|
|
|
|
hdrs="$hdrs$NL$(printf '%s: %s\n' "${hdr}" "$1")"
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
printf 'mfwd: invalid argument %s\n' "$1" 1>&2
|
|
|
|
|
|
|
|
exit 1;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
[ "$#" -eq 0 ] && set -- .
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
*mbnc*)
|
|
|
|
|
|
|
|
hdr=
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
|
|
|
|
--)
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
break;;
|
|
|
|
|
|
|
|
-??*)
|
|
|
|
|
|
|
|
hdr=${1#-}
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
[!-]*)
|
|
|
|
|
|
|
|
[ -z "$hdr" ] && break;
|
|
|
|
|
|
|
|
hdrs="$hdrs$NL$(printf '%s: %s\n' "${hdr}" "$1")"
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
printf 'mbnc: invalid argument %s\n' "$1" 1>&2
|
|
|
|
|
|
|
|
exit 1;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
[ "$#" -eq 0 ] && set -- .
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
*mrep*)
|
|
|
|
|
|
|
|
hdr=
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
|
|
|
|
--)
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
break;;
|
|
|
|
|
|
|
|
-??*)
|
|
|
|
|
|
|
|
hdr=${1#-}
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
[!-]*)
|
|
|
|
|
|
|
|
[ -z "$hdr" ] && break;
|
|
|
|
|
|
|
|
hdrs="$hdrs$NL$(printf '%s: %s\n' "${hdr}" "$1")"
|
|
|
|
|
|
|
|
shift;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
printf 'mrep: invalid argument %s\n' "$1" 1>&2
|
|
|
|
|
|
|
|
exit 1;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
[ "$#" -eq 0 ] && set -- .
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hdrs="$(printf '%s\n' "${hdrs#$NL}" | mhdr /dev/stdin)"
|
|
|
|
|
|
|
|
|
|
|
|
outbox=$(mhdr -h outbox "$MBLAZE/profile")
|
|
|
|
outbox=$(mhdr -h outbox "$MBLAZE/profile")
|
|
|
|
if [ -z "$outbox" ]; then
|
|
|
|
if [ -z "$outbox" ]; then
|
|
|
|
if [ -z "$resume" ]; then
|
|
|
|
if [ -z "$resume" ]; then
|
|
|
@ -113,27 +203,36 @@ fi
|
|
|
|
{
|
|
|
|
{
|
|
|
|
case "$0" in
|
|
|
|
case "$0" in
|
|
|
|
*mcom*)
|
|
|
|
*mcom*)
|
|
|
|
printf 'To: '
|
|
|
|
{
|
|
|
|
printf '%s\n' "$@" | commajoin
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h to /dev/stdin |
|
|
|
|
printf '%s: \n' Cc Bcc Subject
|
|
|
|
commajoin | sed 's/^/To: /'
|
|
|
|
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h cc /dev/stdin |
|
|
|
|
[ "$from" ] && printf 'From: %s\n' "$from"
|
|
|
|
commajoin | sed 's/^/Cc: /'
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h bcc /dev/stdin |
|
|
|
|
|
|
|
|
commajoin | sed 's/^/Bcc: /'
|
|
|
|
|
|
|
|
printf '%s\n' "$hdrs" | awk '{ print }' |
|
|
|
|
|
|
|
|
msed "/to/d; /cc/d; /bcc/d" /dev/stdin
|
|
|
|
|
|
|
|
} | msed "/cc/a//; /bcc/a//; /subject/a//; /from/a/$default_from/" /dev/stdin | sed '/^$/d'
|
|
|
|
msgid
|
|
|
|
msgid
|
|
|
|
museragent
|
|
|
|
museragent
|
|
|
|
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
printf '\n\n'
|
|
|
|
printf '\n\n'
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
*mfwd*)
|
|
|
|
*mfwd*)
|
|
|
|
raw=
|
|
|
|
{
|
|
|
|
[ "$1" = -r ] && raw=1 && shift
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h to /dev/stdin |
|
|
|
|
[ "$#" -eq 0 ] && set -- .
|
|
|
|
commajoin | sed 's/^/To: /'
|
|
|
|
printf '%s: \n' To Cc Bcc
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h cc /dev/stdin |
|
|
|
|
COLUMNS=10000 mscan -f 'Subject: [%f] %s' "$@" | sed 1q
|
|
|
|
commajoin | sed 's/^/Cc: /'
|
|
|
|
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h bcc /dev/stdin |
|
|
|
|
[ "$from" ] && printf 'From: %s\n' "$from"
|
|
|
|
commajoin | sed 's/^/Bcc: /'
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
COLUMNS=10000 mscan -f 'Subject: [%f] %s' "$@" 2>/dev/null | sed 1q
|
|
|
|
|
|
|
|
printf '%s\n' "$hdrs" | awk '{ print }' |
|
|
|
|
|
|
|
|
msed "/to/d; /cc/d; /bcc/d" /dev/stdin
|
|
|
|
|
|
|
|
} | msed "/cc/a//; /bcc/a//; /from/a/$default_from/" /dev/stdin | sed '/^$/d'
|
|
|
|
msgid
|
|
|
|
msgid
|
|
|
|
museragent
|
|
|
|
museragent
|
|
|
|
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
printf '\n\n'
|
|
|
|
printf '\n\n'
|
|
|
|
if [ -z "$raw" ]; then
|
|
|
|
if [ -z "$raw" ]; then
|
|
|
|
mseq -r "$@" | sed 's:^:#message/rfc822#inline :; s:$:>:'
|
|
|
|
mseq -r "$@" | sed 's:^:#message/rfc822#inline :; s:$:>:'
|
|
|
@ -144,16 +243,22 @@ fi
|
|
|
|
printf '%s Forwarded message from %s %s\n\n' \
|
|
|
|
printf '%s Forwarded message from %s %s\n\n' \
|
|
|
|
$SEP "$(mhdr -d -h from "$f")" $SEP
|
|
|
|
$SEP "$(mhdr -d -h from "$f")" $SEP
|
|
|
|
DISPLAY= mshow -n -N "$f" </dev/null |
|
|
|
|
DISPLAY= mshow -n -N "$f" </dev/null |
|
|
|
|
sed 's/^-/- &/' # RFC934
|
|
|
|
sed 's/^-/- &/' # RFC 934
|
|
|
|
printf '\n%s %s %s\n\n' \
|
|
|
|
printf '\n%s %s %s\n\n' \
|
|
|
|
$SEP 'End forwarded message' $SEP
|
|
|
|
$SEP 'End forwarded message' $SEP
|
|
|
|
done
|
|
|
|
done
|
|
|
|
) fi
|
|
|
|
) fi
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
*mbnc*)
|
|
|
|
*mbnc*)
|
|
|
|
printf '%s: \n' Resent-To
|
|
|
|
{
|
|
|
|
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h resent-to /dev/stdin |
|
|
|
|
[ "$from" ] && printf 'Resent-From: %s\n' "$from"
|
|
|
|
commajoin | sed 's/^/Resent-To: /'
|
|
|
|
|
|
|
|
printf '%s' "$hdrs" | mhdr -M -h resent-cc /dev/stdin |
|
|
|
|
|
|
|
|
commajoin | sed 's/^/Resent-Cc: /'
|
|
|
|
|
|
|
|
printf '%s\n' "$hdrs" | awk '{ print }' |
|
|
|
|
|
|
|
|
msed "/resent-to/d; /resent-cc/d" /dev/stdin
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
msed "/resent-to/a//; /resent-from/a/$default_from/" /dev/stdin | sed '/^$/d'
|
|
|
|
msgid | sed 's/^/Resent-/'
|
|
|
|
msgid | sed 's/^/Resent-/'
|
|
|
|
printf 'Resent-Date: %s\n' "$(mdate)"
|
|
|
|
printf 'Resent-Date: %s\n' "$(mdate)"
|
|
|
|
(
|
|
|
|
(
|
|
|
@ -162,7 +267,6 @@ fi
|
|
|
|
)
|
|
|
|
)
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
*mrep*)
|
|
|
|
*mrep*)
|
|
|
|
[ "$#" -eq 0 ] && set -- .
|
|
|
|
|
|
|
|
ng=$(mhdr -h newsgroups "$1")
|
|
|
|
ng=$(mhdr -h newsgroups "$1")
|
|
|
|
if [ "$ng" ]; then
|
|
|
|
if [ "$ng" ]; then
|
|
|
|
printf 'Newsgroups: %s\n' "$ng"
|
|
|
|
printf 'Newsgroups: %s\n' "$ng"
|
|
|
@ -173,11 +277,11 @@ fi
|
|
|
|
printf 'Cc: %s\n' \
|
|
|
|
printf 'Cc: %s\n' \
|
|
|
|
"$(mhdr -d -A -h to:cc: "$1" |notmine |commajoin)"
|
|
|
|
"$(mhdr -d -A -h to:cc: "$1" |notmine |commajoin)"
|
|
|
|
printf 'Bcc: \n'
|
|
|
|
printf 'Bcc: \n'
|
|
|
|
|
|
|
|
printf '%s\n' "$hdrs" | awk '{ print }'
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
printf 'Subject: Re: %s\n' "$(COLUMNS=10000 mscan -f '%S' "$1")"
|
|
|
|
printf 'Subject: Re: %s\n' "$(COLUMNS=10000 mscan -f '%S' "$1")"
|
|
|
|
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
|
|
|
|
[ "$from" ] && printf 'From: %s\n' "$from"
|
|
|
|
[ "$from" ] && printf 'From: %s\n' "$from"
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
|
|
|
|
mid=$(mhdr -h message-id "$1")
|
|
|
|
mid=$(mhdr -h message-id "$1")
|
|
|
|
if [ "$mid" ]; then
|
|
|
|
if [ "$mid" ]; then
|
|
|
|
printf 'References:'
|
|
|
|
printf 'References:'
|
|
|
@ -189,6 +293,7 @@ fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
msgid
|
|
|
|
msgid
|
|
|
|
museragent
|
|
|
|
museragent
|
|
|
|
|
|
|
|
cat "$MBLAZE/headers" 2>/dev/null
|
|
|
|
printf '\n'
|
|
|
|
printf '\n'
|
|
|
|
|
|
|
|
|
|
|
|
mquote "$1"
|
|
|
|
mquote "$1"
|
|
|
|