如何使用Google脚本在Google工作表中发送电子邮件

Google脚本是一个功能强大的工具,可用于自动执行Google生产力工具(例如表格和文档)。自动发送电子邮件的功能使其成为 extra 功能强大的工具。

也许您是一名员工,希望通过Google自动计算的公式将每月的电子邮件发送给老板床单。或者您可能是一位经理,花费太多时间通过电子邮件向您的团队成员发送绩效数据或状态更新之类的信息。您将在本文中学习的Google脚本功能将帮助您完成这些任务,甚至更多。

只需花费一点时间,您就无需再手动发送数据。让Google脚本充当您自己的私人助理,为您完成所有工作。

设置工作表以发送电子邮件

获取Google脚本发送邮件的第一步通过Google表格正确设置了一个表格,该表格包含了所有名称,电子邮件地址和发给您要脚本发送电子邮件的所有人的消息。

在我的示例中,我首先使用电子表格我已经设置为自动从Google Analytics(分析)导入该月的所有已发布文章。我创建了一个“所有作者"工作表,用于汇总每个作者的已发表文章,现在我想向每个单独的作者发送一封电子邮件,并附上他们的理货信息。

首先,请创建您的特殊电子邮件在当前电子表格中添加一个新工作表,然后将其命名为“发送电子邮件"。

在此新的“发送电子邮件"工作表中,您将需要创建标题。该电子表格中的每一行将代表将发送出去的一封单独的电子邮件。因此,在此示例中,我为收件人的姓名,他们的电子邮件地址以及要在脚本中整理的邮件片段创建了一个工作表。

您可以构建电子邮件

静态信息只是我在单元格中键入的文本。每个月都不会改变。它只是电子邮件消息的一部分,始终保持不变。但是,对于每个月要更改的数据,您可以插入函数,这些函数将从电子表格中的任何其他工作表导入相关数据。

此处的想法是,每当您打开工作表以查看自动报告,您将有一个菜单项,您可以单击该菜单项以运行发送电子邮件的Google Script并将结果分发给所有人。您将在本文的底部看到如何自定义此新菜单项。

完成工作表的创建后,它将类似于:

既然您已经准备好所有单独电子邮件的工作表,那么现在终于可以编写脚本了!

编写自动电子邮件脚本

要编写脚本,您需要使用脚本编辑器。通过选择脚本编辑器,您可以在工具菜单下找到脚本编辑器。

脚本编辑器的外观如下所示。您需要在右侧窗格的顶部创建一个新功能。

只需将下面的脚本复制并粘贴到脚本区域即可。

function sendArticleCountEmails() {  var ss = SpreadsheetApp.getActiveSpreadsheet();  ss.setActiveSheet(ss.getSheetByName("Send-Emails"));  var sheet = SpreadsheetApp.getActiveSheet();  var dataRange = sheet.getRange("A2:F4");  var data = dataRange.getValues();  for (i in data) {    var rowData = data[i];    var emailAddress = rowData[1];    var recipient = rowData[0];    var message1 = rowData[2];    var message2 = rowData[3];    var parameter2 = rowData[4];    var message3 = rowData[5];    var message = 'Dear ' + recipient + ',\n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;    var subject = 'Your article count for this month';    MailApp.sendEmail(emailAddress, subject, message);  }}

看起来有点复杂,但实际上根本没有。让我们对其进行分解,以便您确切了解每一行在做什么。

分解代码

为使此功能正常工作,您需要确保工作表中所有您存储的电子邮件信息实际上是活动工作表。否则,之后的所有内容将无法正常工作。这就是这两行的意思:

var ss = SpreadsheetApp.getActiveSpreadsheet();ss.setActiveSheet(ss.getSheetByName("Send-Emails"));

接下来,我们需要从该工作表中提取所有数据。 sheet.GetRange()方法将从您在引号内提供的任意单元格区域中提取信息。接下来, dataRange.getValues()方法实际上提取值并将其存储到名为 data 的二维数组中。

var sheet = SpreadsheetApp.getActiveSheet();var dataRange = sheet.getRange("A2:F4");var data = dataRange.getValues();

现在,我们将所有数据存储在数组中,我们可以使用 for 循环遍历整个数组。数组的每个元素都是一行,其中包含一维列元素的数组。您可以使用数字来引用每一列。

var rowData = data[i];var emailAddress = rowData[1];var recipient = rowData[0];var message1 = rowData[2];var message2 = rowData[3];var parameter2 = rowData[4];var message3 = rowData[5];

如上所述,我将列元素拉入称为 rowData 的一维数组中。然后,我通过引用 rowData [1] 来引用第二列(以获得电子邮件地址),该元素是数组的第二个元素(数组的第一个元素始终为零)。

此功能的下一步是将组成电子邮件正文的所有消息片段拼凑在一起。这里的好处是,您实际上可以使用 \ n 字符为电子邮件内容提供一种非常不错的格式,即回车符。电子邮件正文的串联如下所示:

var message = 'Dear ' + recipient + ',\n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;

+ 字符是串联命令。您将实际的静态文本放在单引号内。因此,通过在收件人变量的前面放置单词“ Dear"来拼凑此消息(注意,“ Dear"有一个空格)。

接下来,在末尾添加两个回车符。这将在体内两行以下开始实际的消息。接下来,添加第一个消息段,一个空格,第二个消息段,一个空格,每个月将插入到消息中的变量,最后是消息的最后一部分。

您可以拥有您可以根据需要随意创建多条消息,您只需使用更多的列就可以创建整条消息。

代码的最后几行只是设置了电子邮件的主题行(这可以还可以包含电子表格中的数据),最后还包括 sendEmail()方法。

如何触发脚本

返回脚本编辑器窗口中,只需搜索“ onOpen"功能。如果该功能在那里,您可能会在方括号内看到一堆代码。转到该代码的底部并插入以下行:

var spreadsheet = SpreadsheetApp.getActive();var menuItems = [  {name: 'Send Emails', functionName: 'sendArticleCountEmails'}];spreadsheet.addMenu('Send Emails', menuItems);

只需确保在 functionName 参数的单引号中键入函数的确切名称。这将在每次打开工作表时将自定义菜单项加载到工作表中。

现在,每当您每月打开电子表格以查看所有数据时,只需单击在菜单项上发送电子邮件。这将运行您的新功能并为您发送所有这些电子邮件。以前需要花费数小时才能完成的工作现在只需单击鼠标即可!

Google脚本可以帮助您节省时间

这只是许多方法中的一个示例您可以使用Google脚本自动执行各种操作,从而节省时间。例如,您可以使用Google脚本自动生成Google Analytics(分析)报告。困难的部分仅在于它确实需要一些前期工作,但是您花费每分钟使用脚本来设置自动化的时间却节省了很多小时。试想一下那些小时中您可以做的所有其他奇妙的事情!

您是否曾经使用过聪明的Google脚本来自动化工作效率?在下面的评论部分中分享您自己的示例!

标签: Google Apps 电子表格