我一直在尝试找到一种方法,将单行数据发送到我在我的域中使用的“实时/运行”电子表格中的特定电子邮件地址,以跟踪卡车司机及其上车号码。我设法使用工作表中提供的 Google Apps 脚本编辑器拼凑出一小段代码:
function sendEmail()
{
var sheet = SpreadsheetApp.getActiveSheet();
var activeRow = sheet.getActiveCell().getRow();
var cellID = "H" + activeRow;
var dataRange = sheet.getRange(activeRow, 1, 1, 6);
var EMAIL_SENT = "EMAIL_SENT";
var data = dataRange.getValues();
Logger.log(data[0][0]);
var emailAddress = usercellnum@carrier.net;
var message = data;
var subject = "CG-PU#";
var emailSent = sheet.getRange(cellID).getValue();
if (emailSent != "EMAIL_SENT")
{
MailApp.sendEmail(emailAddress, subject, message);
var cell = sheet.getRange(cellID);
cell.setValue(EMAIL_SENT);
}
}
SpreadsheetApp.flush();
}
任何方式我都可以从我的电子表格中的单元格调用该函数,例如=sendEmail()
它应该只从活动行发送信息,然后标记该行,EMAIL_SENT
这样我就不会意外地再次这样做。
如果我从脚本编辑器内部运行脚本,并且对电子邮件地址进行硬编码,则该脚本运行完美,但如果我尝试从电子表格本身运行它,我会收到以下消息:
错误:您无权调用 sendEmail(第 19 行,文件“CPS_sendEmail.gs”)。
非常感谢您对此的任何帮助!这将有助于防止我的用户回到 MS Excel 和 Outlook。当我让这部分工作时,如果我可以让函数显示用户可以选择的地址列表,或者以其他方式让用户不必记住和输入驱动程序地址和承运人,但我很乐意让它按预期工作。
该脚本将/应该只允许在我的 Google 域中与我的用户一起运行,并且在我第一次执行它时 - 我确定我已经完成了授权过程,但并不真正理解这部分内容。
他们目前正在使用 MS Excel/Outlook,他们将行复制并粘贴到电子邮件中,他们可以使用他们的联系人从中进行选择。如果我无法获得使用 Google 联系人的功能,我正在考虑创建一张带有查找功能或其他功能的驱动程序表——当联系人就在那里时,必须保留一份列表有点痛苦——但你做你必须做的事!