Okay, here’s a swing at an action that I think does almost everything you describe.
I use Spark on i*OS, but on Mac I use Mailmate, so I can’t test this on the Mac, only iPhone and iPad. When I run it on those, the body has the newline characters stripped from it. I have tried newlines, URL encoded newlines,
%0d%0a, and all sorts of variations on a theme. But no luck. I wonder if it suffers the same issue as Gmail used to (and maybe still does)?
If you use it on the Mac, feel free to give it a try there, it may work. Someone else may have an idea how to get the newlines in another way. I suspect you may need to raise this with Readdle, who develop Spark.
The alternative for now would to to swap this line towards the end of the final script step:
… to this …
// Copy body to clipboard so you can paste it into the e-mail body in the compose window
One additional point:
You note that you want the recipient full names in the to field.
— Begin Recipients —
TO: Scrooge McDuck (firstname.lastname@example.org), Minipherd Mouse (email@example.com), Mickalardio Mouse (firstname.lastname@example.org)
CC: Dubious Duck (email@example.com)
— End Recipients —
These are for e-mail addresses. The names come from your contact’s information and is a convenience feature offered by e-mail client applications. Only the e-mail address is a valid entry, unless you have a richer interaction with an app such as through Shortcuts or the user interface - whereby contact names may allow for aliasing in a default e-mail address or being shown as associated with an entered e-mail address.
i.e. for what you are asking to do, the names are only useful for maintaining your recipient lists, and would not get used by the URL scheme process for creating an e-mail in Spark.
Hope that helps.