Estoy creando un formulario de contacto con varias líneas de entrada y me gustaría que la información del formulario se envíe a mi dirección de correo electrónico. Por ejemplo, tengo una línea para la dirección de correo electrónico del usuario, una línea para el presupuesto del usuario y una línea para la ciudad del usuario. Estas variables se denotan por "correo electrónico", "presupuesto" y "ciudad", respectivamente. Como resultado, estoy usando req.body.email como texto en nodemailer.
El problema es que solo puedo poner una de las variables en la sección de texto del correo electrónico. Aquí está mi código para explicar mejor lo que quiero decir.
const mailOptions = { from: req.body.email, to: 'fakeemail@gmail.com', subject: 'New message from Ogma', text: req.body.email }¿Cuál es la sintaxis que debo usar para poner también req.body.budget y req.body.city en la sección de texto?
¡Gracias!
Editar: aquí está el resto de mi código JS porque no estoy seguro de qué está mal
const form = document.getElementById('login'); let subject = document.getElementById('subject'); let level = document.getElementById('level'); let inperson = document.getElementById('inperson'); let where = document.getElementById('where'); let details = document.getElementById('details'); let email = document.getElementById('email'); form.addEventListener('submit', (e)=>{ e.preventDefault(); console.log('submit clicked') let formData = { subject: subject.value, level: level.value, inperson: inperson.value, where: where.value, details: details.value, email: email.value } let xhr = new XMLHttpRequest(); xhr.open('POST', '/'); xhr.setRequestHeader('content-type', 'application/json'); xhr.onload = function() { console.log(xhr.responseText); if (xhr.responseText == 'success'){ alert('Email sent'); subject.value = ''; level.value = ''; inperson.value = ''; where.value = ''; details.value = ''; email.value = ''; }else{ alert('Invalid login') } } xhr.send(JSON.stringify(formData)); })Si algo no está muy mal, entonces req.body debería ser un objeto. Algo como
{ email: "some@mail.com", budget: 12345, city: "Paris" }lo que significa que deberías poder hacer
text: req.body De esa manera, puede acceder al objeto pero usando mailOptions.text y trabajar con él como lo haría con un objeto, o hacer referencia a él directamente ya que es un objeto anidado: mailOptions.text.budget .
Todo depende de lo que haga con las mailOptions de correo después.