The email author URL should look like below. Out of all the parameters
I would always use "p3_lkid" and "retURL". Rest of the parameters are
optional. Let's break this down:
_ui/core/email/author/EmailAuthor?p3_lkid=001E000000CVCF7&retURL=%2F001E000000CVCF7&p2_lkid=003180000066S1efirstname.lastname@example.orgemail@example.com;firstname.lastname@example.org&p6=Hello World&p23=Nice to meet email@example.com&template_id=
p3_lkid = "Related To" Id. Based on the Id, Salesforce will
automatically select the object and record. This Id will be used to
populate the merge field, if you are also using a template.
retURL = Return URL if cancel is pressed. Followed by %2F.
p2_lkid = Contact Id. Use to populate "To" field. It automatically
fetches the email of this contact to send email. Also, populates the contact merge fields, if used.
p4 = CC
p5 = BCC. I passed two emails separated by semicolons to keep two
different people in the loop. Same goes with CC field.
p6 = Subject of this email.
p23 = Email body.
p24 = Additional emails.
template_id = Id of template you are going to use. This template
should contain merge fields of the same object as p3_lkid. No need to
pass p6 and p23, if the template already handles them.
Removed P3 - If you're using p3_lkid, then no use to do this.
Removed p26 - NOT sure what you trying to achieve here.
Used semi-colons between emails.
NO need to use location.replace and inverted commas. Simply copy paste the url with behavior as "URL".
Also, you should use merge field for "p24" by creating formula field for that.
To add more parameters, please see the structure above.