Google Apps Script заменяет контент вместо добавления текста к черновому содержанию - PullRequest
0 голосов
/ 20 января 2020

Это моя попытка, однако я не могу обновить черновик - я хочу, чтобы текст «Это сообщение было проверено» был добавлен при сохранении черновика содержимого, получателей и темы.

function dlpValidate(e) {
  var toEmails = e.draftMetadata.toRecipients, ccEmails = e.draftMetadata.ccRecipients, bccEmails = e.draftMetadata.bccRecipients, domains = [], uniqueDomains = [];
  var allEmails = toEmails.concat(ccEmails, bccEmails); 
  for (var i = 0; i < allEmails.length; i++) {
    domains[i] = allEmails[i].split("@").pop().split(".")[0];
  }  
  uniqueDomains = domains.filter(listUnique);
  if(uniqueDomains.length == 1 || (uniqueDomains.length <= 2 && uniqueDomains.indexOf("verasafe") != -1)) {
    var draft = GmailApp.getDrafts()[0];
    draft.update(toEmails,"test","This Message has been verified");
    return [notifyYes(uniqueDomains)];
  }
}

@param {event} e - это объект события триггера компоновки в функции триггера компоновки, который срабатывает при выборе действия компоновки: Ссылка .

Это функция listUnique, вызываемая в основной функции:

function listUnique(value, index, self) { return self.indexOf(value) === index; }

Как написано в данный момент, функция полностью заменяет черновое содержимое вместо его добавления. Кроме того, он удаляет получателей из полей CC и / или B CC и помещает их в поле TO.

1 Ответ

1 голос
/ 21 января 2020

GmailDraft.update заменяет все текущее содержимое черновика , как указано в официальной документации . Вы должны установить все заново (тема, содержание, получатель, cc, b cc и т. Д. 1024 *.).

Так что, если вы просто хотите добавить к содержанию сообщение «Это сообщение было проверено» и хотите сохранить все остальное как есть, вы должны сначала получить данные о текущем черновике, а затем добавить все вы хотите эти данные, и, наконец, обновить черновик с добавленными данными.

Вы можете сделать что-нибудь по следующим направлениям:

function dlpValidate(e) {
  var toEmails = e.draftMetadata.toRecipients, 
      ccEmails = e.draftMetadata.ccRecipients, 
      bccEmails = e.draftMetadata.bccRecipients, 
      domains = [], 
      uniqueDomains = [];
  var allEmails = toEmails.concat(ccEmails, bccEmails); 
  for (var i = 0; i < allEmails.length; i++) {
    domains[i] = allEmails[i].split("@").pop().split(".")[0];
  }  
  uniqueDomains = domains.filter(listUnique);
  if(uniqueDomains.length == 1 || (uniqueDomains.length <= 2 && uniqueDomains.indexOf("verasafe") != -1)) {
    var draft = GmailApp.getDrafts()[0];
    var message = draft.getMessage();
    var subject = message.getSubject();
    var content = message.getBody();
    // Append "This Message has been verified" to the current draft body
    content = content.concat("<div>This Message has been verified</div>");
    var options = { // Set cc, bcc and body for the updated draft
      bcc: bccEmails.join(","), 
      cc: ccEmails.join(","),
      htmlBody: content
    }
    draft.update(toEmails, subject, content, options); // Update draft
    return [notifyYes(uniqueDomains)];
  }
}

Ссылка

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...