Te damos la bienvenida a nuestro espacio, aquí vas a hallar la solucíon de lo que buscabas.
Solución:
No puede enviar un correo electrónico directamente con javascript.
Sin embargo, puede abrir el cliente de correo del usuario:
window.open('mailto:[email protected]');
También hay algunos parámetros para completar previamente el tema y el cuerpo:
window.open('mailto:[email protected]?subject=subject&body=body');
Otra solución sería hacer una llamada ajax a su servidor, para que el servidor envíe el correo electrónico. Tenga cuidado de no permitir que nadie envíe ningún correo electrónico a través de su servidor.
Indirecto a través de su servidor – Llamada a API de terceros – seguro y recomendado
Su servidor puede llamar a la API de terceros después de la autenticación y autorización adecuadas. Las claves de API no están expuestas al cliente.
node.js – https://www.npmjs.org/package/node-mandrill
const mandrill = require('node-mandrill')('');
function sendEmail ( _name, _email, _subject, _message)
mandrill('/messages/send',
message:
to: [email: _email , name: _name],
from_email: '[email protected]',
subject: _subject,
text: _message
, function(error, response)
if (error) console.log( error );
else console.log(response);
);
// define your own email api which points to your server.
app.post( '/api/sendemail/', function(req, res)
let _name = req.body.name;
let _email = req.body.email;
let _subject = req.body.subject;
let _messsage = req.body.message;
//implement your spam protection or checks.
sendEmail ( _name, _email, _subject, _message );
);
y luego use use $ .ajax en el cliente para llamar a su API de correo electrónico.
Directamente desde el cliente – Llamando a API de terceros – no recomendado
Envíe un correo electrónico utilizando solo JavaScript
en breve:
- registrarse en Mandrill para obtener una API key
- cargar jQuery
- use $ .ajax para enviar un correo electrónico
Como esto –
function sendMail()
$.ajax(
type: 'POST',
url: 'https://mandrillapp.com/api/1.0/messages/send.json',
data:
'key': 'YOUR API KEY HERE',
'message':
'from_email': '[email protected]',
'to': [
'email': '[email protected]',
'name': 'RECIPIENT NAME (OPTIONAL)',
'type': 'to'
],
'autotext': 'true',
'subject': 'YOUR SUBJECT HERE!',
'html': 'YOUR EMAIL CONTENT HERE! YOU CAN USE HTML!'
).done(function(response)
console.log(response); // if you're into that sorta thing
);
https://medium.com/design-startups/b53319616782
Nota: tenga en cuenta que su API key es visible para cualquier persona, por lo que cualquier usuario malintencionado puede utilizar su key para enviar correos electrónicos que pueden consumir su cuota.
No pude encontrar una respuesta que realmente satisficiera la pregunta original.
- Mandrill no es deseable debido a su nueva política de precios, además de que requería un servicio de backend si deseaba mantener sus credenciales seguras.
- A menudo es preferible ocultar su correo electrónico para que no termine en ninguna lista (la solución mailto expone este problema y no es conveniente para la mayoría de los usuarios).
- Es una molestia configurar sendMail o requerir un backend solo para enviar un correo electrónico.
Creé un servicio simple y gratuito que le permite realizar una solicitud HTTP POST estándar para enviar un correo electrónico. Se llama PostMail y simplemente puede publicar un formulario, usar Javascript o jQuery. Cuando te registras, te proporciona un código que puedes copiar y pegar en tu sitio web. Aquí hay unos ejemplos:
Javascript:
jQuery:
Nuevamente, en plena divulgación, creé este servicio porque no pude encontrar una respuesta adecuada.
Sección de Reseñas y Valoraciones
Si para ti ha resultado útil nuestro artículo, nos gustaría que lo compartas con otros desarrolladores de esta manera contrubuyes a extender nuestra información.