【发布时间】:2021-04-25 15:52:20
【问题描述】:
如何在 triggerExample.ts 中正确获取 mailOptions?
mail.ts:
export const sendNewMail = async (html: string, emails: string[]) => {
let smtpTransport = nodemailer.createTransport({
service: "Gmail",
auth: {
user: "...",
pass: "...",
},
});
};
triggerExample.ts:
import { sendNewMail } from "../../mail.ts";
const ordersExample = await getExample();
ordersExample.forEach(async order => {
const email = order.sentEmails.email
let html = ` ...
<img src="cid:image" width="100%" />
`;
await sendNewMail (html,[email]);
如何正确地将这个带有 async/await 的 mailOptions 放入 triggerExample.ts 中:
var mailOptions = {
from: "@gmail.com",
to: emails,
subject: "subject",
html: html,
attachments: [{
path: __dirname + '/image.jpg',
cid: 'image'
}],
};
return smtpTransport.sendMail(
mailOptions,
function (error: Error, response: Response) {
if (error) {
errors.logError(error);
} else {
console.log(`Message sent to ${errors}`);
}
}
);
【问题讨论】:
-
您好,您可以使用 try/catch 块来获取等待接收您的选项作为参数的 sendmail 的错误?等待 sendmail 函数的结果会为您提供响应中的信息/元数据。如果你需要一个例子,请告诉我。想知道为什么要将图片作为附件包含在内,但您有一个特定的要求,以便您不只是链接到托管在某处的图片?
-
是的,请,如果你能展示一个例子,那就太好了。是的,我需要它在附件中,只是链接对我不起作用
-
a) 你cannot use
forEachfor asynchronous code。 b)那个``方法似乎没有返回一个承诺,你need to promisify it。 -
我不太明白你问题中的三个sn-ps是如何相互关联的。
标签: javascript node.js typescript async-await nodemailer