关于发送电子邮件的谷歌工作表脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于发送电子邮件的谷歌工作表脚本相关的知识,希望对你有一定的参考价值。
我认为这将是一个简单的解决方案,但我一直无法在网上找到解决方案。
我正在尝试在运行脚本时发送自动电子邮件。问题是它会为每一行发送一封电子邮件(多封电子邮件发送给同一个人),而不是发送一封包含在该电子邮件中的每一行/每一行的电子邮件。
第二个问题是我想发送给多个收件人。在我的工作表中,我想将B2:F3中的数据发送到第一个电子邮件地址,然后我想将B4:F5发送到提供的第二封电子邮件。
谢谢您的帮助。 - 贾里德
这是我的脚本:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("sheet1"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:m8");
var data = dataRange.getValues();
for (i in data) {
var rowData = data[i];
var emailAddress = rowData[0];
var city = rowData[11];
var dimension = rowData[1];
var product = rowData[2];
var tally = rowData[3];
var price = rowData[5];
var ship = rowData[5];
var message = city + '
' + dimension + ' ' + product + ' ' + tally + ' ' + price + ' ' + ship;
var subject = 'PFP Lumber';
MailApp.sendEmail("emailaddress1@blank.com",
"PFP Lumber",
message);
}
}
从您的共享样本表和脚本中,有一些问题。
- 似乎
price
和ship
是rowData[5]
。price
和ship
分别是rowData[4]
和rowData[5]
? - 似乎
rowData[11]
是Phone
。 这是rowData[6]
?
如果price
,ship
和Phone
分别是rowData[4]
,rowData[5]
和rowData[6]
,你想发送以下电子邮件。
邮件1:mailaddress:emailaddress1@blank.com
消息:Gulfport desc1 1 1 1 1,Gulfport desc2 2 2 2 2
邮件2:mailaddress:emailaddress2@blank.com
消息:Gulfport desc 3 3 3 3 3,Gulfport desc 4 4 4 4 4
如果我的理解是正确的,那么这个修改怎么样?我认为你的情况有几个答案,所以请把它当作其中之一。
Modification points :
- 检索电子邮件地址和邮件。 如果在A列未找到新的电子邮件地址,则会添加该消息。 在A列找到新的电子邮件地址时,电子邮件将被分开。
Modified script :
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("sheet1"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:m8");
var data = dataRange.getValues();
// Modified
var temp = [];
var emailAddress, dimension, product, tally, price, ship, city;
for (var i in data) {
[emailAddress, dimension, product, tally, price, ship, city] = data[i];
var message = city + '
' + dimension + ' ' + product + ' ' + tally + ' ' + price + ' ' + ship;
if (emailAddress || !dimension) {
if (temp.length > 0) {
MailApp.sendEmail(temp[0], "PFP Lumber", temp.slice(1,temp.length).join("
"));
var temp = [];
}
temp.push(emailAddress, message);
if (!dimension) break;
} else {
temp.push(message);
}
}
}
Note :
- 一个邮件地址的几条消息由
- 因为我不确定您要使用的每个列的变量,如果我修改的脚本的变量与您想要的不同,请修改它们。
- 在这个修改过的脚本中,在列B的
Dimension
为空的行之后,我发现没有您要发送的电子邮件。
如果我误解你的问题,我很抱歉。
编辑:
如果要添加签名,这个脚本怎么样?
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("sheet1"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:m8");
var data = dataRange.getValues();
var temp = [];
var emailAddress, dimension, product, tally, price, ship, city;
var signature = "
---
sample signature";
for (var i in data) {
[emailAddress, dimension, product, tally, price, ship, city] = data[i];
var message = city + '
' + dimension + ' ' + product + ' ' + tally + ' ' + price + ' ' + ship;
if (emailAddress || !dimension) {
if (temp.length > 0) {
MailApp.sendEmail(temp[0], "PFP Lumber", temp.slice(1,temp.length).join("
") + signature);
var temp = [];
}
temp.push(emailAddress, message);
if (!dimension) break;
} else {
temp.push(message);
}
}
}
以上是关于关于发送电子邮件的谷歌工作表脚本的主要内容,如果未能解决你的问题,请参考以下文章
Discord 使用 url-query 中的“代码”发送 Oauth2 重定向 url。如何在我的谷歌脚本中获取该代码
需要JS帮助 - 观看谷歌工作表专栏,通过Gmail发送更新价值的电子邮件