Similar to bug 49622 I have created a patch to send messages without a body. The patch enhances the functionality of the SMTP Sampler in JMeter.
This patch is attached, and consists of a simple check box to determine if the body should be empty or not.

If there is no body and no files, it looks like the code needs to do the following to avoid the error:
message.setText("");
This results in an empty body, with the headers:
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I assume that this is what you were aiming for?
==
Given that it might be useful to send SMTP messages which are not multipart/mixed, maybe it would be better to change the code so that if the flag is set then the code uses:
message.setText(mailBody)
This would only make sense if there were no files.
Though if the mailBody was emtpy, perhaps one could allow a single file and send that as the body.
If you think this makes sense, I'm happy to make the changes (i.e. no need for you to redo the patch).

This is ASF Bugzilla: the Apache Software Foundation bug system. In case
of problems with the functioning of ASF Bugzilla, please contact
bugzilla-admin@apache.org.
Please Note: this e-mail address is only for reporting problems
with ASF Bugzilla. Mail about any other subject will be silently
ignored.