email - Google 表格中的慢速 MailApp.send
问题描述
我一直在使用这个 mailapp 编码,并且只根据 K 列中的 EMAIL_SENT 发送给一个人列表,确认它是在 J 列中发送的。这个列表很长,但每次运行只发送给大约 20 人关于 K 列的规则(发送给今天实际工作的人的公式)。过去工作得很好。
现在,尽管最近为我的小组重新格式化了 Google 表格后,发送一封电子邮件需要 20-30 秒,而且在 6 分钟的时间限制内甚至没有完成 20 封电子邮件的列表。我最近的重新格式化确实在 Google Sheet 上包含了更多脚本,并带有更多条件格式,但不在提供此脚本的工作表上。
任何想法是什么让它减慢了这么多?
谢谢
function MorningEmail() {
var sheet = SpreadsheetApp.getActive().getSheetByName('EarlyEmail');
var startRow = 4;
var numRows = 180;
var dataRange = sheet.getRange(startRow, 1, numRows, 50)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0]; // First column
var fromName = row[16];
var replyToaddress = row[15];
var message = row[20]+row[21]+row[22]+row[23]+row[24]+row[25]+row[26]+row[27]+row[28]+row[29]+row[30]+row[31]+row[32]+row[33]+row[34]+row[35]+row[36]+row[37]+row[38]+row[39]+row[40]+row[41]+row[42]+row[43]+row[44]+row[45]+row[46]+row[47]+row[48]+row[49];
var emailSent = row[10];
if (emailSent != EMAIL_SENT) {
var subject = row[19];
MailApp.sendEmail(emailAddress, subject, message, {
name: fromName,
replyTo: replyToaddress,
htmlBody: message
});
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
解决方案
推荐阅读
- apache-spark - 计划作业在 Zeppelin 中永久运行,停止解释器选项自行消失
- networkx - 使用 ryu 和 networkx 在网络中正确添加主机
- angularjs - 基类中没有模板的角度组件继承
- css - Bootstrap 5 拉伸 div 背景和内容中心
- apache-spark - 如何提高 EMR 集群中的火花性能
- r - 有没有办法查看相同的用户 ID,然后在一个小时内计算条目
- ios - 为 Admob 安装 pod 后出现 Xcode 终端错误:Google 移动广告 SDK 在没有 AppMeasurement 的情况下进行了初始化
- html - 滚动表。阴影和“tr”边界半径问题
- java - 我收到这个错误,如正文所示,在 ubuntu 中构建 apk 文件时,请帮我解决这个错误
- php - 在 laravel 中获取订单产品类别