脚本将电子邮件读取为数字而不是字符串

Script is reading email as a number instead of string

我正在尝试遵循本指南(之前从未编写过程序):

https://www.groovypost.com/howto/google-sheets-send-email-based-on-cell-value/

但它一直给我错误:

异常:参数 (number[],String,String) 与 MailApp.sendEmail 的方法签名不匹配。 sendEmail@发送Email.gs:8

据我了解,这意味着电子邮件值是一个数字。但是我不知道如何解决这个问题。

function sendEmail() {
// Fetch the email address
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Client Input").getRange("D2");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = 'Please go to your Issues Tracker for more information'; // Second column
var subject = ' Notification Action Required';
MailApp.sendEmail(emailAddress, subject, message);  
}

因为 emailRange.getValues() returns 一个二维数组,你需要通过它的索引来引用实际的字符串值,在这种情况下,[0][0] 因为数组只有一个值。

var emailAddress = emailRange.getValues()[0][0];

或者如果您打算只使用一个电子邮件地址,只需使用:

var emailAddress = emailRange.getValue();

参考文献:

Class Range | getValues()

JavaScript Arrays