我一直在尝试找到一种方法,将单排数据发送到我在域内使用的“实时/运行”电子表格中的特定电子邮件地址,以跟踪卡车司机及其接收号码。我设法使用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 因此,我不会再做一次。

如果我从Inside脚本编辑器运行它,并将其硬编码为电子邮件地址,则该脚本将运行完美,但是如果我尝试从电子表格本身运行它,我会收到消息:

错误:您无权致电sendemail(第19行,“ cps_sendemail.gs”)。

对此的任何帮助将不胜感激!这将有助于使我的用户回到MS Excel和Outlook。当我获得它的这一部分工作时,如果我可以使该功能显示一个可以选择的地址的列表,或者其他方法可以使用户不得不记住并输入驱动程序地址和键入,我会非常喜欢它运营商,但我很乐意将其中的大部分按预期工作。

该脚本只能/应该被允许与用户一起在我的Google域中运行,并且第一次执行它 - 我确定我经历了授权过程,但并不是真正了解这一部分的一部分。

他们目前正在使用MS Excel/Outlook,并将该行复制并粘贴到一封电子邮件中,他们可以使用他们的联系人来选择。如果我无法获得使用Google Contacts的功能,那么我正在考虑创建具有查找功能或其他内容的驱动程序 - 有点痛苦才能在触点就在那里时必须保留列表 - 但是,您要做什么呢

没有正确的解决方案

其他提示

通读 权限和自定义功能. 。由于自定义功能(从电子表格函数调用脚本)向电子表格的任何用户开放,因此不允许使用任何需要身份验证的服务。这就是为什么您无法从一个发送邮件的原因。

这与授权脚本访问您的服务的过程不同。这确实使错误消息混淆了,但是请放心,这只是您调用脚本的方式。

但是没问题,因为无论如何,自定义功能是执行此类操作的不好方法,因为每次电子表格发生更改时,该功能都会被重新评估,发送的电子邮件比您想要的要多。

我建议您改用此操作创建菜单项。 (如果创建新的电子表格脚本,请参见编辑器中提供的示例代码。)工作流程将是将光标移至所需的行,然后使用菜单“使其如此”,以调用您的脚本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top