从电子表格onOpen发送电子邮件

时间:2012-10-26 19:36:22

标签: email google-apps-script google-sheets triggers

我有一个脚本在我公司执行CRM系统,我使用Fusion表作为数据库。每次我输入新记录时,此记录都会保存在此融合表中。执行保存操作时,我使用以下代码在电子表格中制​​作传递给数据库的数据副本,以便我备份数据:

function AtualizarSpreadsheet(e)
{
  var app = UiApp.getActiveApplication();
  var planilha = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = planilha.getActiveSheet();

  var enviado = "NÃO";
  var id = e.parameter.id;
  var nomeDoReclamante = e.parameter.nomeDoReclamante;
  var telefone = e.parameter.telefone;
  var ddd = e.parameter.ddd;
  var prefixo = e.parameter.prefixo;
  var sufixo = e.parameter.sufixo;
  var email = e.parameter.email;
  var regiao = e.parameter.regio;
  var categoria = e.parameter.categoria;
  var produto = e.parameter.produto;
  var subcategoria = e.parameter.subcategoria;
  var versaoDeSoftware = e.parameter.versoDeSoftware;
  var dataDeInicio = e.parameter.dataDeInicio;
  var dia = e.parameter.dia;
  var mes = e.parameter.ms;
  var ano = e.parameter.ano;
  var tituloDoProblema = e.parameter.ttuloDoProblema;
  var descricao = e.parameter.descrio;
  var status = e.parameter.status;
  var prioridade = e.parameter.prioridade;
  var informarEngenharia = e.parameter.informarEngenharia;
  var dataDeRegistro = e.parameter.dataDeRegistro;
  var horaDeRegistro = e.parameter.horaDeRegistro;
  var historico = e.parameter.histrico;
  var ordem = e.parameter.ordem;
  sheet.s
  sheet.appendRow([enviado,
                   id,
                   nomeDoReclamante,
                   telefone,
                   ddd,
                   prefixo,
                   sufixo,
                   email,
                   regiao,
                   categoria,
                   produto,
                   subcategoria,
                   versaoDeSoftware,
                   dataDeInicio,
                   dia,
                   mes,
                   ano,
                   tituloDoProblema,
                   descricao,
                   status,
                   prioridade,
                   informarEngenharia,
                   dataDeRegistro,
                   horaDeRegistro,
                   historico,
                   ordem]);
  return app;
}

在电子表格中,我执行onOpen()函数,每次电子表格被选中时发送一封电子邮件。 但是当我的Fusion表脚本执行命令时:SpreadsheetApp.openById(SPREADSHEET_ID); onOpen()函数未被触发。即使我操作电子表格,我也无法运行该功能。 onOpen()函数详见:

function onOpen() 
{
    MailApp.sendEmail("EMAIL", "SUBJECT", "BODY");
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在尝试调用简单触发器不支持的服务(MailApp)。您需要将onOpen()函数调用为不同的函数,并将可安装的“on open”触发器附加到它上面。

https://developers.google.com/apps-script/understanding_triggers