Según Enviar correos electrónicos con Javascript , una forma de hacerlo es la siguiente:
function sendMail() { var link = "mailto:me@example.com" + "?cc=myCCaddress@example.com" + "&subject=" + encodeURIComponent("This is my subject") + "&body=" + encodeURIComponent(document.getElementById('myText').value) ; window.location.href = link; }Sin embargo, estoy tratando de personalizarlo, enviando correos electrónicos con variables. Hice esto:
function sendMail(subject="test", body, mail="test@gmail.com") { var link = `mailto:${mail}` + "&subject=" + encodeURIComponent(`${subject}`) + "&body=" + encodeURIComponent(`${body}`) ; window.location.href = link;Pero, al enviar el correo electrónico, logro este error:

Parece que no está reconociendo cada variable. ¿Cómo resolverlo?
El enlace tiene que ser así:
var link = `mailto:${mail}` + "?subject=" + encodeURIComponent(`${subject}`) + "&body=" + encodeURIComponent(`${body}`);La cadena de consulta debe comenzar con ? no &
cambiar &sujeto a ?sujeto
debería ser //abc@example.com?subject=blahblahblah&body=testtest
Solo prueba este código para enviar correos electrónicos. Estoy seguro de que funcionará..
<!DOCTYPE html> <html> <head> <title></title> <script src="https://smtpjs.com/v3/smtp.js"></script> <script type="text/javascript"> function sendEmail() { Email.send({ Host: "smtp.gmail.com", Username : "<sender's email address>", Password : "<email password>", To : '<recipient's email address>', From : "<sender's email address>", Subject : "<email subject>", Body : "<email body>", }) .then(function(message){ alert("mail sent successfully") }); } </script> </head> <body> <form method="post"> <input type="button" value="Send Email" onclick="sendEmail()"/> </form> </body>¡Y recuerde que si está utilizando JavaScript en cualquier otro archivo, simplemente vincúlelo a su archivo HTML! Y esto no está completamente codificado por mí. He investigado un poco en Internet.