mblaze/contrib/msendmail

68 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# msendmail TO... < msg - compose MIME mail noninteractively
# -F from-name
# -a attach-file
# -b bcc
# -c cc
# -f from
# -s subject
# -m msg-paragraph
IFS='
'
MBLAZE=${MBLAZE:-$HOME/.mblaze}
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
subj=
bcc=
cc=
msg=
fromname=
att=
hdr() {
[ -z "$2" ] && return
printf '%s: ' "$1"
shift
printf '%s\n' "$@" | sed ':a;N;s/\n/, /;$!b a'
}
while getopts a:s:b:c:m:f:F: opt; do
case "$opt" in
s) subj=$OPTARG;;
b) bcc="$bcc$IFS$OPTARG";;
c) cc="$cc$IFS$OPTARG";;
m) msg="$msg$OPTARG$IFS$IFS";;
f) from=$OPTARG;;
F) fromname=$OPTARG;;
a) att="$att$IFS$OPTARG";;
[?]) exit 1;;
esac
done
shift $((OPTIND-1))
[ -n "$from" ] && [ -n "$fromname" ] && from="$fromname <$from>"
{
hdr To "$@"
hdr Cc $cc
hdr Bcc $bcc
hdr Subject $subj
hdr From $from
hdr User-Agent "mblaze/beta (msendmail)"
hdr Message-Id "$(mgenmid)"
hdr Date "$(mdate)"
printf '\n'
if [ -n "$msg" ]; then
printf '%s' "$msg"
else
cat
fi
for a in $att; do
printf '#%s %s\n' "$(file -b --mime-type "$a")" "$a"
done
} | mmime