Ищете скрипт приложений Google, который навсегда удаляет из корзины Gmail - PullRequest
2 голосов
/ 23 сентября 2019

Пользователь получает большой объем нежелательных писем от определенного отправителя.Блокировка перемещает почту в спам, а фильтрация - в корзину.Оба из них все еще выставляют пользователя к электронным письмам, если те папки проверены.

То, что я ищу, - это сценарий, который навсегда удаляет электронные письма с указанного адреса электронной почты либо при получении электронных писем, либо по частому расписанию.

Я почти не знаком со скриптами Google или js, лучшее, что я имею в отношении кода, - это какой-то элементарный vba.

Исследование этой проблемы привело меня к использованию приложений Google в качестве потенциального решения, поскольку gmail не предоставляет какого-либо автоматизированного способа окончательного удаления электронной почты.Ниже приведен код, который я нашел в поиске, хотя я не могу далеко продвинуться в этом из-за моего полного отсутствия знаний скриптов приложений.

function DeleteEmailByLabel(e) {personsemail@gmail.com}
var bannedLabel = 'BLOCKEDSENDER';
var deleteLabel = GmailApp.getUserLabelByName(bannedLabel);
if ( deleteLabel != null ) {personsemail@gmail.com}
var threads = deleteLabel.getThreads();
for (var i = 0; i < threads.length; i++) {
Gmail.Users.Messages.remove('me', threads[i].getId());
}
} else {
deleteLabel = GmailApp.createLabel(bannedLabel);
}
}

Я ожидаю, что приведенный выше код запустится и удалит электронную почту из моей тестовой учетной записи, из папки корзины.Однако вместо этого я получаю эту ошибку.Это похоже на основные синтаксические вещи, но я здесь не в своей лиге.

Отсутствует;до заявления.(строка 1, файл "имя файла")

Заранее спасибо.

1 Ответ

3 голосов
/ 23 сентября 2019

Прежде чем вы сможете использовать это в скрипте приложений, обратите внимание на следующие действия:

  1. Создайте фильтр в учетной записи Gmail пользователя, чтобы для таких писем назначалась специальная уникальная метка (Вы можете «пометить их как прочитанные» или «отправить их в спам»; это не имеет значения)
  2. Эта функция использует некоторые из расширенных API Gmail и, как таковая, требует их включения из редактора сценариев.сначала до запуска скрипта.Для этого перейдите по следующему адресу:

Ресурсы> Расширенные службы Google ...> Прокрутите страницу до Gmail API >, чтобы переключить Выключите , нажмите Включите

Advanced resources

function deleteEmails() {
  var bannedLabel = 'BLOCKEDSENDER' // replace with the label name, as setup in filters
  var deleteLabel = GmailApp.getUserLabelByName(bannedLabel);  
  if ( deleteLabel != null ) {
    var threads = deleteLabel.getThreads();  
    for (var i=0; i<threads.length; i++) {
      Gmail.Users.Threads.remove('me', threads[i].getId());
    }    
  } else {
    // do something
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...