如何强制 Google App Script MailApp.sendEmail 在循环中为每封电子邮件使用新线程?

Posted

技术标签:

【中文标题】如何强制 Google App Script MailApp.sendEmail 在循环中为每封电子邮件使用新线程?【英文标题】:how can I force Google App Script MailApp.sendEmail to use a new thread for each email in a loop? 【发布时间】:2021-04-26 02:35:22 【问题描述】:

我正在做一个简单的应用程序,我有一个包含几列的电子表格,一个是电子邮件地址,另一个是我想通过电子邮件发送到这些地址的信息。代码很简单,就是一个while循环,每行数据都执行MailApp.sendEmail

我遇到的问题是,当我执行应用程序时,所有电子邮件最终都在同一个电子邮件线程中。这使得跟踪响应变得非常困难,因为每封电子邮件都是独立的。我一直在寻找有关如何强制MailApp.sendEmail 启动新线程的方法,但在documentation 或网络中找不到如何操作。

【问题讨论】:

【参考方案1】: 问题是您对这些电子邮件使用完全相同的主题,因此它们最终会出现在同一个电子邮件线程中。

例如:

这会将所有电子邮件放在同一个线程中:

function myFunction() 
  for (let i=0; i<2; i++)
  
  MailApp.sendEmail("example@gmail.com",
                  "Test", // subject is the same for every email
                  "This is an test email");
  

这会将电子邮件放在不同的线程中:

function myFunction() 
  for (let i=0; i<2; i++)
  
  MailApp.sendEmail("example@gmail.com",
                  "Test"+i, // subject is different for every email
                  "This is an test email");
  


您可以发送日期时间,而不是使用描述性不太好的i 作为主题:

"Test"+new Date()

虽然如果电子邮件立即发送,这可能不起作用,因此主题将再次相同,但它可能适用于您的情况。

理想情况下,您需要与电子邮件相关的内容,例如与电子邮件正文相关的内容。

【讨论】:

谢谢!这就是问题所在!我已经包含了请求号(每行都不同),现在所有的电子邮件都在不同的线程中发送,

以上是关于如何强制 Google App Script MailApp.sendEmail 在循环中为每封电子邮件使用新线程?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google OAuth 2.0 Playground 运行 Google App Script 功能 |调用者没有权限

如何在 Google App Script 中使用参数调用 MySQL 存储过程?

如何收听Telegram Bot错误? (Google App Script + Webhooks)

如何向 Google Apps Script Web App 发送有效的 HTTP 请求?

如何使用 Google App Script 从 Youtube 搜索中创建 RSS 提要?

在Google-App-Script for Google云端硬盘中如果标题包含某个字词,如何将某些文件从root移动到某个文件夹?