Автоответчик на запросы доступа к файлам в гугл почте

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

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

Для того чтобы понять на какие письма будет приходить автоответ сделайте запрос в почте 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 г.

© Habrahabr.ru