Ir para conteúdo
Fórum Script Brasil

wctins

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre wctins

wctins's Achievements

0

Reputação

  1. Olá pessoal, Estou usando script no google planilha para enviar um e-mail de acordo com os dados colhidos no formulário e enviados a uma planilha Google. Não quero usar complemento(extensão) por isso estou ralando no script, porém o script está parcialmente correto pois ele não deixa de enviar o email novamente para todos, mesmo eu dizendo que se tiver escrito "e-mail enviado" ele não envie. Inclusive para não precisa entrar no editor de script, coloquei um botão para executar a função sendEmails Agradeço qualquer ajudar para descobrir no código onde estou erando. Segue link do arquivo: https://drive.google.com/open?id=13bRw1NpppJJd0QfakZL0cfPSDzoCM46dPSzluwmWCHE Segue código: function sendEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var dataSheet = ss.getSheets()[0]; var dataRange = dataSheet.getRange(2,1,dataSheet.getMaxRows()-1,5); var startRow = 2; var templateSheet = ss.getSheets()[1]; var emailTemplate = templateSheet.getRange("A1").getValue(); var objects = getRowsData(dataSheet, dataRange); var emailSent = "E-mail enviado"; for (var i = 0; i < objects.length; ++i) { var rowData = objects; var isEmailSent = rowData[5]; if (isEmailSent != emailSent) { if (i === emailSent) { continue; } var emailSubject = "Título da mensagem"; var emailText = fillInTemplateFromObject(emailTemplate, rowData); MailApp.sendEmail(rowData.emailAddress, emailSubject, emailText);{ dataSheet.getRange(startRow + i, 5).setValue(emailSent); SpreadsheetApp.flush(); }; }; }; } function fillInTemplateFromObject(template, data) { var email = template; var templateVars = template.match(/\$\{\"[^\"]+\"\}/g); for (var i = 0; i < templateVars.length; ++i) { var variableData = data[normalizeHeader(templateVars)]; email = email.replace(templateVars, variableData || ""); } return email; } function getRowsData(sheet, range, columnHeadersRowIndex) { columnHeadersRowIndex = columnHeadersRowIndex || range.getRowIndex() - 1; var numColumns = range.getEndColumn() - range.getColumn() + 1; var headersRange = sheet.getRange(columnHeadersRowIndex, range.getColumn(), 1, numColumns); var headers = headersRange.getValues()[0]; return getObjects(range.getValues(), normalizeHeaders(headers)); } function getObjects(data, keys) { var objects = []; for (var i = 0; i < data.length; ++i) { var object = {}; var hasData = false; for (var j = 0; j < data.length; ++j) { var cellData = data[j]; if (isCellEmpty(cellData)) {continue;} object[keys[j]] = cellData; hasData = true; } if (hasData) {objects.push(object);} } return objects; } function normalizeHeaders(headers) { var keys = []; for (var i = 0; i < headers.length; ++i) { var key = normalizeHeader(headers); if (key.length > 0) {keys.push(key);} } return keys; } function normalizeHeader(header) { var key = ""; var upperCase = false; for (var i = 0; i < header.length; ++i) { var letter = header; if (letter == " " && key.length > 0) { upperCase = true; continue; } if (!isAlnum(letter)) {continue;} if (key.length == 0 && isDigit(letter)) {continue;} if (upperCase) { upperCase = false; key += letter.toUpperCase(); } else { key += letter.toLowerCase(); } } return key; } function isCellEmpty(cellData) { return typeof(cellData) == "string" && cellData == ""; } function isAlnum(char) { return char >= 'A' && char <= 'Z' || char >= 'a' && char <= 'z' || isDigit(char); } function isDigit(char) { return char >= '0' && char <= '9'; } ================================================================ Valeu
×
×
  • Criar Novo...