我正在使用带有nodemailer模块的nodejs 创建一个应用程序来发送邮件。
我的应用程序的过程是读取包含姓名和电子邮件的列表,使用jimp创建 png 文凭文件(基于每个姓名和电子邮件),然后通过 nodemailer 存储并发送每个文件到每个不同的邮件地址,所有这些完成后我想删除每个文件,但所有这些都以同步方式进行,因为 png 文凭和发送电子邮件需要一些时间:
我的列表的语法是:
const list = [
[name1, email1@mail.com]
[name2, email2@mail.com]
[ ... ]
[namex, emailx@mail.com]
]
Run Code Online (Sandbox Code Playgroud)
实际上我想等待每封邮件发送完毕,因为 gmail 似乎在处理同时发送多封邮件时存在问题,发送 13 或 15 封邮件后,它会显示下一个错误:
error: { Error: Data command failed: 421 4.7.0 Temporary System Problem. Try again later (10). x12sm4645987otk.1 - gsmtp
Run Code Online (Sandbox Code Playgroud)
因此,为了实现这一目标,我使用经典的 for 循环迭代列表(foreach 循环以异步方式执行此操作,并且不允许我保持对文凭生成的控制),我处理每个职位的
//Iterating over mails array
for (let i = 0; i < list.length; i++) {
// Little msg to know what is going on …Run Code Online (Sandbox Code Playgroud)