从Open电子表格发送电子邮件 [英] Sending email from spreadsheet onOpen

查看:75
本文介绍了从Open电子表格发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个脚本可以在公司上执行CRM系统,并且我正在使用Fusion表作为数据库。每当我输入新记录时,该记录就会保存在此融合表中。执行保存操作后,我将使用以下代码在电子表格中制​​作一个传递到数据库的数据副本,以便对数据进行备份:

I have a script that performs a CRM system on my company and I am using Fusion table as a database. Every time i enter a new record, this record is saved on this fusion table. When the save action is performed, I use the follow code to make a copy of the data, that is passed to the database, in on spreadsheet so I have a backup of the data:

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()函数,每次使用电子表格。
但是,当我的融合表脚本执行命令时:SpreadsheetApp.openById(SPREADSHEET_ID); onOpen()函数未触发。即使我选择了电子表格,也无法运行该功能。
onOpen()函数的详细信息如下:

On the spreadsheet I perform a function onOpen() to send one email everytime the spreadsheet is oppened. However when my fusion table script performs the command: SpreadsheetApp.openById(SPREADSHEET_ID); the onOpen() function is not being triggered. Even if I oppen the spreadsheet I cant have that function runned. The onOpen() function is detailed bellow:

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

我在做什么错了?

推荐答案

您正在尝试调用简单触发器不支持的服务(MailApp)。您将需要以不同的方式调用onOpen()函数,并在其上附加一个可安装的 on open触发器。

You are attempting to call a service (MailApp) that is not supported in a simple trigger. You would need to call your onOpen() function something different, and attach an installable "on open" trigger to it instead.

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

这篇关于从Open电子表格发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆