If your requirements are simple, you can use bare Sendmail. It is not something I particularly recommend, but since you wanted to avoid mutt
...
# Now that we actually concatenate two files (well, stdin and a file),
# we are no longer eligible for a Useless Use of Cat Award
( cat - body.html <<HERE
Subject: My subject
Mime-Version: 1.0
Content-type: multipart/related; boundary="foooobar"
--foooobar
Content-type: text/html
HERE
cat <<HERE
--foooobar
Content-type: image/png
Content-disposition: inline
Content-transfer-encoding: base64
HERE
base64 image.png
echo; echo '--foooobar--' ) | sendmail -oi $RECIPIENTS
I do wish there were a simple, standard utility for this, but alas, instead there are many, all more or less mutually incompatible and murky. Again, if you can use mutt
, that's probably the most widely supported and standard tool you can hope for.