NodeMailer,发送特定数量的电子邮件

2024-05-06

我需要帮助使用 nodemailer 发送特定数量的电子邮件,假设我想向特定的人发送 20 封电子邮件。 这是我的代码。

const transporter = nodemailer.createTransport(smtpTransport({
  host: "smpt.gmail.com", //smtp server
  port: 587,
    pool: true,
  secure: false, // true for 465, false for other ports
  auth: {
    user: "[email protected] /cdn-cgi/l/email-protection", // mail
    pass: "testtesttest" // password
  }
}));
transporter.close();


// setup email data with unicode symbols
let mailOptions = {
  from: '"Test Test" <[email protected] /cdn-cgi/l/email-protection>', // sender address
  to: mailto, // list of receivers
  subject: args[1], // Subject line
  text: args[2] // 
};

async function sendMail() {
  let info = await transporter.sendMail(mailOptions);
  sending = true;
}

const SendingMessage = setInterval(() => {
  var mailto = args[0];
  mailOptions.subject = args[1];
  var mailtxt = args[2];

  sendMail();
}, 1500);

我如何让它发送“嘿”这样的消息给[电子邮件受保护] /cdn-cgi/l/email-protection仅5次。因为目前它只会发送“嘿”,直到我达到我的 smtp 发送限制


首先创建一个要发送的邮件内容数组,例如;

const mails2send = [
{
 from: '..',
 to: '..',
 subject: '..'
 text: '..'
},
{
 from: '..',
 to: '..',
 subject: '..'
 text: '..'
},
{
 from: '..',
 to: '..',
 subject: '..'
 text: '..'
}
]

修改 sendMail 函数以接受参数。

async function sendMail(mailOptions) {
  let info = await transporter.sendMail(mailOptions);
  sending = true;
  return sending;
}

然后通过映射mails2send

mails2send.forEach( item => sendMail(item ))

Update看来您可能正在谈论您的 setInterval 函数

let counter = 0;

const SendingMessage = setInterval(() => {
  
  var mailto = args[0];
  mailOptions.subject = args[1];
  var mailtxt = args[2];
  sendMail();

  if (counter === 4) {
      return clearInterval(SendingMessage); //<-- clear the interval when reach 5.
  }
  counter++ //<-- counter increment.
  
}, 1500);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeMailer,发送特定数量的电子邮件 的相关文章

  • 使用 Mongoose 将数组(“标签”)保存到 MongoDB

    我正在玩 Mongoose 但在保存到数组时遇到问题 例如 我在页面上有一个以逗号分隔的输入字段tags 我从 req body tags 中获取这些内容 删除空格 然后用逗号分隔它们以获得标签数组 现在 如何将该数组保存回我的数据库 我猜
  • 使用 puppeteer 配置 PDF 页面宽度

    我正在尝试使用 puppeteer 生成 pdf 但生成的 pdf 宽度很大 我想要一个 pdf 文件 它在一页中显示所有内容 并且宽度必须为 4 8 厘米 其中页面高度可以是其内容的任何长度 我在pdf中添加了配置 path filePa
  • Express MongoDB find() 基于 _id 字段

    因此 在我的 Express 应用程序中 我尝试根据我的 id 字段查找 请参阅下面我的 MongoDB 记录 id oid 58c2a5bdf36d281631b3714a title EntertheBadJah subTitle Lo
  • 使用 puppeteer 部署 firebase 功能时说即使我启用了 --no-sandbox 也找不到 chrome

    我正在尝试将 firebase 函数部署到使用 puppeteer 的 firebase 项目 我让它在本地计算机上运行 但是当它尝试在 firebase 上运行时 我收到此错误 Exception from a finished func
  • 在 firebase 函数中设置 dotenv

    我正在尝试将我制作的小型节点表达应用程序移动到 firebase 函数中 该文件有dotenv变量 早些时候我想如果我只是部署并依赖 dotenv 它会起作用 但那并没有发生 于是 我去了firebase的环境配置文章了解如何设置 env
  • 使用express/connect-redis在页面重新加载时抓取现有会话

    使用 connect express 和 socket io 我试图让我的应用程序在重新连接时获取会话详细信息 我的会话显然在客户端连接时工作 但如果我刷新浏览器上的页面 它会忘记所有内容 我的会话cookie肯定是一样的 所以不是那样的
  • 如何使用redis发布/订阅

    目前我正在使用node js和redis来构建应用程序 我使用redis的原因是因为发布 订阅功能 该应用程序只是在用户进入用户或离开房间时通知经理 function publishMsg channel mssage redisClien
  • 有没有办法在 NodeJS 中生成受密码保护的 XLSX?

    我正在寻找 npm 包或任何其他解决方法 以便能够生成带有密码的 xlsx 文件 我不想保护工作表或单元格 我希望整个文件受到密码保护 我发现了一些非常好的软件包 excel4node exceljs 但它们都无法满足我的需要 任何建议表示
  • Node.js 可以调用 Chrome 吗?

    在桌面上运行的 Node js 是否可以生成 Chrome 浏览器窗口 我想启动一个 Chrome 浏览器 在 Node js 收到事件时提供窗口大小和位置 sys shell 命令只是方法吗 在 MacOS 上 var childProc
  • nginx 代理到子目录中的远程 Node.js Express 应用程序

    我完全陷入了这样一种情况 我想在一台服务器上拥有多个节点应用程序 通过让应用程序在不同的端口上运行 我可以正常工作 我可以通过输入 IP 地址和端口来访问应用程序 我想通过使用不同的子目录来代理来自 nginx 服务器的应用程序 如下所示
  • Node Js - 识别请求是来自移动设备还是非移动设备

    我对 Node js 还是个新手 是否有任何解决方法或方法如何使用 Node js 识别来自客户端的请求是来自移动设备还是非移动设备 因为我现在正在做的是我想根据设备类型 移动 桌面 限制对某些 API 的访问 我在服务器端使用restif
  • 使用主管在调试中运行 Node.js 应用程序

    我在用导师 https www npmjs com package supervisor自动重新加载我的node js 例如 supervisor w app js 但是我不知道如何让主管在调试中运行node js 进程 例如相当于 nod
  • 如何在node.js子进程模块中将消息以及标准输出从子进程传递到父进程?

    我的子进程模块有问题 特别是 child spawn 和 child fork 我依赖 child process fork 的文档 其中表示 这是 child process spawn 功能的一个特例 生成 Node js 进程 除了将
  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • 使用 Visual Studio 2015 在防火墙后面使用 npm

    我尝试利用 Visual Studio 2015 中新的 npm 支持 但遇到了一些问题 我位于公司防火墙后面 我尝试从 package json 文件中添加 grunt 并且可以看到与 npm 相关的输出 npm http GET htt
  • Node.js + Express.js |尝试设置 HTTPS 服务器

    我正在尝试使用 Node js 和 Express js 设置 HTTPS 服务器 我目前正在尝试 const filesystem require fs const express require express const server
  • Node.js 和 .net 之间的命名管道通信

    我正在研究 net v4 5 2 和 Javascript node js v8 9 0 应用程序之间的进程间通信 我想为此使用 Windows 命名管道 并且仅限命名管道 对于 Javascript 应用程序 我使用的是命名管道包 v0
  • Express.js“app.use()需要中间件功能”

    我正在学习 Express js 4 和 Node 但遇到了一个我无法弄清楚的错误 我正在尝试使用 node sass 包来编译我的 sass 代码 但我无法启动并运行它 这是我的主文件的精简版本 var express require e
  • Docker 从 npm install 组成 v3 命名的卷和 node_modules

    使用 compose v3 在构建中 我复制 package json 并运行 npm install 到 var www project node modules 我没有在构建阶段添加任何代码 在撰写中我添加了卷 www var www
  • 如何在猫鼬中使用聚合

    如何在 mongoose 中定义以下 MongoDB 聚合查询 db contacts aggregate group id code Code name Name 查询的目的是获取不同代码和名称的列表 我当前的模型代码是 use stri

随机推荐