He estado tratando de encontrar una manera de enviar una sola fila de datos a una dirección de correo electrónico específica en una hoja de cálculo de "en vivo/en ejecución" que estoy usando dentro de mi dominio, para realizar un seguimiento de los conductores de camiones y sus números de recogida. Logré reconstruir este poco de código utilizando el editor de scripts de Google Apps disponible en hojas:
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 cualquier manera puedo llamar a la función desde una celda en mi hoja de cálculo como =sendEmail()
y debe enviar la información de solo la fila activa, y luego marcar esa fila como EMAIL_SENT
Así que no lo hago accidentalmente de nuevo.
El script se ejecuta perfecto si lo ejecuto desde el editor de scripts Inside y codifico la dirección de correo electrónico, pero si intento ejecutarlo desde la hoja de cálculo en sí, recibo el mensaje:
Error: no tiene permiso para llamar a SendEmail (línea 19, archivo "CPS_SENDEMAIL.GS").
¡Cualquier ayuda con esto es muy apreciada! Ayuda a evitar que mi usuario se ejecute a MS Excel y Outlook. Cuando hago funcionar esta parte de ella, realmente me gustaría que pudiera hacer que la función muestre una lista de direcciones de las que el usuario puede seleccionar, o alguna otra forma de evitar que el usuario tenga que recordar y escribir la dirección de los controladores y Carrier, pero me encantaría hacer que esto funcione como se esperaba.
El script/solo debería poder ejecutarse en mi dominio de Google con mis usuarios, y la primera vez que lo ejecuté: estaba seguro de que pasé por el proceso de autorización, pero no entiendo realmente esa parte de las cosas.
Actualmente están utilizando MS Excel/Outlook y copian y pegan la fila en un correo electrónico que pueden usar sus contactos para seleccionar. Si no puedo hacer que la función use los contactos de Googles, estaba considerando crear una hoja de controladores con una función de mirada o algo así, un tipo de dolor para tener una lista cuando los contactos están ahí, pero ya haces lo que tienes que hacer !