Pergunta

Eu tenho tentado encontrar uma maneira de enviar uma única linha de dados para um endereço de e -mail específico em uma planilha "Live/Running" que estou usando no meu domínio, para acompanhar os drivers de caminhão e seus números de coleta. Consegui juntar esse pequeno código usando o editor de scripts do Google Apps disponível em folhas:

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();  
}

De qualquer maneira que eu possa chamar a função de uma célula na minha planilha como =sendEmail() e deve enviar as informações apenas da linha ativa e depois sinalizar essa linha como EMAIL_SENT Então, eu não faço acidentalmente de novo.

O script é executado perfeito se eu o executar do editor de scripts interno e codificar o endereço de e -mail, mas se eu tentar executá -lo na planilha em si, estou recebendo a mensagem:

Erro: você não tem permissão para ligar para o SendEmail (linha 19, arquivo "cps_sendemail.gs").

Qualquer assistência com isso é muito apreciada! Ajudaria a impedir que meu usuário volte para o MS Excel e o Outlook. Quando eu faço essa parte funcionando, eu realmente gostaria se pudesse ter a função exibir uma lista de endereços da qual o usuário pode selecionar, ou alguma outra maneira de impedir que o usuário precise se lembrar e digitar o endereço de drivers e Portadora, mas eu adoraria ter isso muito disso funcionando como esperado.

O script seria/só poderia ser executado no meu domínio do Google com meus usuários, e a primeira vez que o executei - tive certeza de que passei pelo processo de autorização, mas não entendo realmente essa parte das coisas.

Atualmente, eles estão usando o MS Excel/Outlook e copiam e colam a linha em um email que podem usar seus contatos para selecionar. Se eu não consigo ter a função de usar contatos do Googles, estava pensando em criar uma folha de motoristas com uma função de pesquisa ou algo assim - tipo de dor para manter uma lista quando os contatos estão ali - mas você faz o que você precisa fazer !

Nenhuma solução correta

Outras dicas

Leia Permissões e funções personalizadas. Como as funções personalizadas (scripts chamadas das funções da planilha) estão abertas a qualquer usuário de uma planilha, elas não têm permissão para usar nenhum serviço que exija autenticação. É por isso que você não pode enviar e -mail de um.

Isso é diferente do processo de autorização de um script para acessar seus serviços. Isso torna a mensagem de erro confusa, mas tenha certeza de que foi exatamente a maneira como você estava invocando o script.

Não há problema, porque uma função personalizada é uma maneira ruim de executar esse tipo de ação de qualquer maneira, porque a função será reavaliada toda vez que houver uma alteração na planilha, enviando muito mais e-mails do que você deseja.

Eu recomendo que você crie um item de menu para esta operação. (Consulte o código de amostra fornecido no editor se criar um novo script de planilha.) O fluxo de trabalho seria mover o cursor para a linha que deseja processada e, em seguida, use o menu para "fazê -lo", o que invocaria seu script.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top