es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener datos del correo electrónico en un servidor Node.js?

Estoy creando la aplicación web que envía correos a través de Node.js. Sin embargo, cuando el usuario hace clic en el botón “Enviar”, el mensaje se envía como un correo electrónico a otro usuario. Pero se envía con el nombre de usuario y la contraseña (identificación de correo) según la sección de autenticación en la configuración de Nodemailer.

Quiero enviar HTML con un formulario/datos y un botón para que cuando el destinatario haga clic en él, se redirija a otra página y pueda acceder a su ID de Gmail y algunos valores de datos/formulario en esa página para poder crear un formulario de respuesta.

var mail = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'example@gmail.com',
    pass: process.env.mail_server
  }
});

var mailOptions = {
  from: 'userSending@gmail.Email',
  to: 'userReciving@gmail.Email',
  subject: data.subject,
  html: `<div><p>mensaje ${data}</p></div>
         <form action="/path" method="post">
           <button type="button" name="send" value="send">Enviar</button>
         </form>`
};

mail.sendMail(mailOptions, function(error, info) {
  console.log("running");
  if (error) {
    console.log(error);
  } else {
    console.log('Correo enviado: ' + info.response);
  }
});

NOTA: 1) Aquí debo poder usar “data” definido en el HTML de Nodemailer y
2) el Gmail del destinatario cuando haga clic en el botón de enviar.

Nota: Por favor, mencione otro enfoque si encuentra alguno.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr su objetivo, puede incluir un identificador único en el formulario HTML que se envía como parte del correo electrónico, de modo que cuando el destinatario haga clic en el botón de enviar, el identificador se incluya en la URL de redireccionamiento. Luego, puede utilizar un lenguaje de scripting del lado del servidor (como Node.js o PHP) para extraer el identificador de la URL y consultar la base de datos o el almacén de datos para recuperar los datos/valores del formulario correspondientes que se enviaron junto con el correo electrónico.

    Alternativamente, puede incluir un enlace en el mensaje de correo electrónico que apunte a una página web donde el destinatario pueda ver los datos/valores del formulario y responder al mensaje. Esto requeriría alojar la página web en un servidor y asegurarse de que el enlace en el mensaje de correo electrónico apunte a la URL correcta.

    Una forma de implementar este enfoque es utilizar un motor de plantillas HTML (como Handlebars o Mustache) para generar el formulario HTML y el contenido del mensaje de forma dinámica, en función de los datos/valores del formulario enviados por el remitente. El motor de plantillas le permitiría incluir marcadores de posición en el código HTML que se reemplazarían con los valores reales cuando se envía el correo electrónico. El enlace a la página web también se generaría de forma dinámica y se incluiría en el mensaje de correo electrónico.

Comments are closed.