Я хочу отправить форму оплаты в электронном письме, используя node.js nodemailer.
мои электронные письма успешно отправлены, но когда я добавляю созданный мной HTML-файл, в электронном письме появляются ошибки.
const fs = require("fs");
const { promisify } = require("util");
const readFile = promisify(fs.readFile);
let transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "mymail",
pass: "mypass",
},
});
let mailOptions = {
from: "[email protected]",
to: invoice.customeremail,
subject: "Payment forServices",
text: "Please pay to Recieve the order ",
html: readFile("C://Users//admin//task//payment.html", "utf8"),
};
transporter.sendMail(mailOptions, function (err, data) {
if (err) {
console.log("error", err);
} else {
console.log("email sent!");
}
});
я хочу, чтобы html-файл отображался в моем электронном письме ... есть ли способ сделать это?
fs.readFile
в обещание, поэтому значениеhtml
вmailOptions
является ожидающим обещанием, которое не является допустимой строкой. Просто используйте вместо этого методfs.readFileSync
или вызовитеawait readFile
, который выдаст ошибку, потому что его нет в функцииasync
. - person Milo   schedule 20.09.2020mailoptions
иsendMail()
вfs.readFile()
, это решит вашу проблему. - person Mohammad Basit   schedule 20.09.2020