Pergunta

Estou usando a API integrada para scripts contra as planilhas do Google para enviar algumas confirmações de reserva e, atualmente, meus scripts quebram se alguém preencheu um email inválido. Gostaria que apenas salve alguns dados em uma lista de convidados que não foram notificados e depois prosseguir com as reservas.

Este é o meu código atual (simplificado):

// The variables email, subject and msg are populated.
// I've tested that using Browser.msgBox(), and the correct column values are
// found and used

// The script breaks here, if an incorrect email address has been filled in
MailApp.sendEmail(email, subject, msg)

De acordo com documentação os únicos dois métodos no MailApp A classe deve enviar e -mails e verificar a cota diária - nada sobre verificar endereços de email válidos - para que eu realmente não sei quais critérios devem ser cumpridos para a classe aceitar a solicitação e, portanto, não posso escrever uma rotina de validação.

Foi útil?

Solução

Fique calmo, pegue e registre a exceção e continue:

try {
  // do stuff, including send email
  MailApp.sendEmail(email, subject, msg)
} catch(e) {
  Logger.log("Error with email (" + email + "). " + e);
}

Outras dicas

Se você precisar validar os endereços de email com antecedência, crie uma planilha em branco na sua unidade. Em seguida, execute a função abaixo, alterando o Testheet variável para apontar para a planilha que você criou. A função fará um teste regex simples para capturar endereços malformados e verifique se o endereço é realmente válido tentando adicioná -lo temporariamente como um espectador na planilha. Se o endereço puder ser adicionado, deve ser válido.

function validateEmail(email) {
  var re = /\S+@\S+\.\S+/;
  if (!re.test(email)) {
    return false;
  } else {
    var testSheet = SpreadsheetApp.openById(arbitrarySpreadsheetInYourDrive);
    try {
      testSheet.addViewer(email);
    } catch(e) {
      return false;
    }
    testSheet.removeViewer(email);
    return true;
  }
}

regex de Como validar o endereço de e -mail no JavaScript?

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