Creé un sitio web donde completa un formulario y luego guarda los datos del formulario en un archivo JSON. Los datos se muestran en el sitio así:

Después de eso, envío los datos en un correo electrónico. Pero el correo electrónico tiene este formato:

¿Cómo hago para que el correo electrónico tenga el mismo formato que el sitio web? Sospecho que el formato cambia donde guardo los datos en el archivo JSON y luego lo leo nuevamente. Pero no estoy seguro y si es así, no sé cómo solucionarlo.
Aquí está el código:
var fs = require('fs') var formidable = require("formidable") var util = require('util') var mailFunctions = require('./mailFunction.js'); 'use strict'; function processAllFieldsOfTheForm(req, res) { var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { res.writeHead(200, { 'content-type': 'text/plain' }); res.write('received the data:\n\n'); res.end(util.inspect( { fields: fields, files: files })); }); } function processFormFieldsIndividual(req, res) { var fields = []; var form = new formidable.IncomingForm(); form.on('field', function (field, value) { fields.push([field, value]); }); // Display data to user form.on('end', function() { var objectToJSON = JSON.stringify({ fields: fields }, null, 2) fs.writeFile('C:/Users/admin/Desktop/Node.js/test/source/json/answers.json', objectToJSON, (err) => { if (err) { console.log(err); console.log('Error while writing file') throw err; } }) res.writeHead(200, { 'content-type': 'text/plain' }); res.write('received the data: \n\n'); res.end(util.inspect( { fields: fields })); }); // Returns data inside file form.on('end', function() { fs.readFile('C:/Users/admin/Desktop/Node.js/test/source/json/answers.json', (err, data) => { if (err) { console.log(err) console.log('Error while reading file') throw err; } else { mailFunctions.makeMail(data) } }); }); form.parse(req); }También soy un poco nuevo en node.js, por lo que probablemente haya un código tan inútil/malo allí.
No incluyó la única parte relevante de su código fuente (el archivo mailFunction.js), por lo que es imposible decirle qué tiene de malo. (Además, ¿qué pasa con las capturas de pantalla? ¿Se supone que debemos usar Photoshop para solucionarlo? Si los desarrolladores han perdido la capacidad de copiar y pegar el código, entonces no hay esperanza).
Ahora, también es imposible decirte cómo hacer un correo electrónico que se parezca a tu sitio web cuando no sabemos cómo se ve tu sitio web, ¿no es así? Y todo lo que se puede decir aquí es un consejo muy general.
Debe usar algún sistema de plantillas para producir HTML (supongo que es HTML, pero también es posible que todo lo que necesite sea texto sin formato; nuevamente, es imposible saberlo a partir de su pregunta) y debe asegurarse de que ese HTML tenga el formato correcto para correos electrónicos, que es bastante diferente al formato de los sitios web, algo que mucha gente no sabe.
Luego, debe enviar correctamente el correo electrónico HTML junto con todos los archivos adjuntos porque no puede hacer referencia de manera confiable a las imágenes y otros activos alojados en sus servidores.
Hay buenos módulos en npm que pueden ayudarlo con todos esos pasos. Para enviar el correo puedes usar Nodemailer:
Para usar plantillas con Nodemailer, consulte:
Para enviar el correo electrónico, es mejor utilizar un servicio de correo electrónico transaccional como Mandrill, Mailgun o Amazon SES si no desea que su ISP lo bloquee y que su correo vaya a las carpetas de correo no deseado de sus usuarios. Ver:
Todos ellos son compatibles con Nodemailer.
Para saber cómo formatear el HTML y el CSS reales para que sus correos electrónicos se vean como desea, consulte estos tutoriales: