Estoy tratando de enviar un correo usando nodemailer. Creo que he dado todas las opciones de correo correctamente. Como lo he confirmado al imprimir mailOptions en la consola.
Y también he comprobado la autenticación y el usuario. Son correctos y bien importados.
Pero aún no recibo ningún error definido por el destinatario. ¿Dónde está el problema?
Aquí está toda la función de enviar correo electrónico
function sendEmail(payload) { var fromEmail = config.cfg.smtp.fromEmail; console.log(fromEmail); var toEmail = payload.to; var subject = payload.subject; var content = `<p>Greetings! your order is on the way. Order details are</p>`; let smtpTransport = nodemailer.createTransport({ service: "gmail", auth: { user: config.cfg.smtp.auth.user, pass: config.cfg.smtp.auth.pass, }, }); // setup email data with unicode symbols let mailOptions = { from: fromEmail, // sender address. Must be the same as authenticated user if using Gmail. to: toEmail, // receiver subject: subject, // subject html: content, // html body }; return new Promise(function (resolve, reject) { smtpTransport.sendMail({ mailOptions }, function (err, data) { console.log(mailOptions) if (err) { console.log("your mail could not be sent"); return reject(err); } resolve(data); console.log("Your mail is sent"); }); });}
Está enviando sus mailOptions dentro de otro objeto. Intente lo siguiente en su lugar.
return new Promise(function (resolve, reject) { smtpTransport.sendMail(mailOptions, function (err, data) { // mailOptions is already an object. console.log(mailOptions) if (err) { console.log("your mail could not be sent"); return reject(err); } resolve(data); console.log("Your mail is sent"); });