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

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

Для того чтобы понять на какие письма будет приходить автоответ сделайте запрос в почте is:inbox is:unread Запрос доступа к файлу

is:inbox is:unread Запрос доступа к файлу
is:inbox is:unread Запрос доступа к файлу

На моём скриншоте ничего нет, потому что все файлы уже были обработаны скриптом.

Создайте гугл скрипт

Вот шаги для создания скрипта Google Apps, который будет рассылать авто ответы на запросы доступа к файлам:

  1. Откройте Google Диск и выберите «Создать» > «Ещё» > «Google Apps Script». Это откроет редактор скриптов.

  2. В редакторе скриптов удалите код по умолчанию и добавьте следующее:

// Подробное описание в статье https://habr.com/ru/articles/739168/

function autoReply() {
    for (const filename of [
            `Имя файла 1`,
            `Имя файла 2`,
            `Имя файла 3`
        ]) {
        var threads = GmailApp.search(`is:inbox is:unread Запрос доступа к файлу "${filename}"`);
        for (var i = 0; i < threads.length; i++) {
            var thread = threads[i];
            console.log(`Результат поиска: "${filename}": ${i} из ${threads.length}:\n---- ${thread.getMessages()[thread.getMessageCount() - 1].getReplyTo()};`)
            from = thread
                .getMessages()[thread.getMessageCount() - 1].getFrom()
                .split(' (через')[0]
                .replace(/\"/g, '')
            thread.reply(`Привет, ${from}!\nБлагодарю Вас за интерес к моему файлу "${filename}". Бла бла бла \n\nС уважением, Михаил Шардин.`);
            GmailApp.moveThreadsToTrash(threads.slice(i, i + 1));

            console.log(`Был обработан и удалён запрос от ${thread.getMessages()[thread.getMessageCount() - 1].getReplyTo()} к ${filename}`)
        }
    }
}
  1. Сохраните сценарий, выбрав «Файл» > «Сохранить». Назовите скрипт, например, «Gmail auto-responder».

  2. Запустите сценарий, щелкнув Выполнить, выбрав autoReply. Это отправит письма на адреса тех кто запрашивал доступ к файлам, но только если у вас уже есть запросы, то есть запрос в почте is:inbox is:unread Запрос доступа к файлу не пустой.

Результат работы скрипта - автоответ отправлен, а  затем цепочки с запросами и автоответы перемещены в корзину
Результат работы скрипта - автоответ отправлен, а затем цепочки с запросами и автоответы перемещены в корзину
  1. Добавьте триггер для автоматического запуска скрипта. Перейдите в «Триггеры текущего проекта». Нажмите «Добавить новый триггер» и выберите «Управляемый временем», чтобы запускать скрипт например один раз в день или даже раз в несколько минут.

 Изменение триггера для проекта
Изменение триггера для проекта

Составьте текст письма для автоматического ответа

Это важная часть и я уделил этому достаточно большое место в статье, ведь получатель увидит только её. Можно руководствоваться несколькими правилами:

  1. Приветствуйте отправителя по имени, если оно указано.
    Вы можете получить имя отправителя из сообщения Gmail, используя: var senderName = message.getFrom().split("<")[0].trim();

  2. Поблагодарите отправителя за запрос на доступ к файлу. Например:Спасибо за ваш запрос на доступ к файлу.

  3. Укажите, что это автоматический ответ. Например:Это автоматический ответ системы запросов на доступ к файлам.

  4. Укажите предполагаемые сроки ответа на запрос. Например: Мы стараемся отвечать на все запросы на доступ к файлам в течение 2 рабочих дней.

  5. Сообщите отправителю, чего ожидать в полном ответе.

  6. Еще раз поблагодарите отправителя за терпение и понимание. Например: Еще раз спасибо за ваше терпение и понимание.

  7. Заканчивайте вежливо и профессионально. Например: С наилучшими пожеланиями, [Ваше имя]

Заключение

Вот несколько способов использования скрипта Google Apps для автоматического ответа на запросы доступа к файлам по электронной почте:

  1. Скрипт может проверять наличие новых непрочитанных писем, содержащих строку Запрос доступа к файлу и автоматически отправлять ответ. Это избавляет от необходимости вручную проверять каждый запрос и отвечать на него.

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

Автор: Михаил Шардин,

5 июня 2023 г.

Комментарии (8)


  1. 1dNDN
    05.06.2023 01:09
    +4

    1. Зачем отвечать на запросы доступа письмом? Просто дал доступ или не дал, уведомление запрашивающему придет все равно

    2. В чем смысл автоматически отвечать на запросы доступа и удалять их? Их же шлют не чтобы получить ответ буквами, а чтобы получить доступ. Судя по статье, сам процесс выдачи доступа никак не автоматизируется


    1. empenoso Автор
      05.06.2023 01:09

      1. Так можно отправить сообщение тому кто запрашивает доступ к файлу. Ведь например если это таблица, то человек сразу увидит только таблицу. Что-то типа аннотации. Или с продажами можно связать.

      2. Отвечать и удалять письма и запрос - смысл в том что если таких запросов очень много то они просто болтаются в почте и от них никакой пользы. Опять же в письме можно перенаправить на какие-то дополнительные материалы или что-то подобное.


  1. VikkorMalansohn
    05.06.2023 01:09

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


    1. empenoso Автор
      05.06.2023 01:09

      Вы правы, запрашивающему получить доступ эта процедура вряд ли помогает, но эта статья и код про того, кто решает предоставлять доступ или нет. При помощи письма можно перенаправить на другие ресурсы например.


  1. Javian
    05.06.2023 01:09
    +1

    Большое спасибо.
    Поделился файлом в комментариях на Хабре несколько лет назад. Все хорошо было пока Гугл не придумал запросы доступа. И в мою почту стали приходить "мешки писем от телезрителей" :) Не знаю где эта ссылка ходит, но приходят в узкие промежутки времени группами. Вероятно где-то на форуме/соцсети идет периодическое обсуждение темы и файл привлекает внимание к себе в эти моменты.


    1. VikkorMalansohn
      05.06.2023 01:09
      +1

      Что мешает сделать доступ по ссылке для всех кто имеет эту ссылку. Не понятно.


      1. Javian
        05.06.2023 01:09
        +1

        Непонятно кому давать. Ссылка гуляет в той форме, которая была до этого нововведения.


        1. VikkorMalansohn
          05.06.2023 01:09