如何使邮件传输器等到生成pdf?
我附上了我尝试过的代码。我的浏览器挂起,无法发送电子邮件。问题是邮件传输器会在生成pdf之前尝试发送电子邮件。我猜我没有使用异步并在正确的位置等待。
async () => {
await pdf.create(document, options).then(res => {
console.log(res)
}).catch(error => {
console.error(error)
})
let message = "Testing"
let mailOptions = {
from: "xxx@gmail.com",
to: "yyy@gmail.com",
subject: 'Subject testing',
text: message,
attachments: [{
path: __dirname + '/../public/reports/' + 'test.pdf',
}]
}
await transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log("sent email")
res.json({
email: "sent"
});
}
})
}
答案 0 :(得分:0)
我知道了。我没有调用该函数,因此未执行该操作。我删除了transporter.sendMail中的await,因为它没有执行任何操作。
sendPDF();
async function sendPDF() {
await pdf.create(document, options).then(res => {
console.log(res)
}).catch(error => {
console.error(error)
})
let message = "Testing"
let mailOptions = {
from: "xxx@gmail.com",
to: "yyy@gmail.com",
subject: 'Subject testing',
text: message,
attachments: [{
path: __dirname + '/../public/reports/' + 'test.pdf',
}]
}
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log("sent email")
res.json({
email: "sent"
});
}
})
}