Недавно мне потребовалось сделать так, чтобы при запросе доступа к файлу на гугл диске через почту отправлялся автоответ. С помощью гугл скриптов я разобрался как это сделать и хотел бы показать это на примере в этой статье.
Как это работает: гугл скрипт ищет непрочитанные электронные письма с запросом на доступ к файлу и отправляет по почте автоответ один раз в сутки, после этого письмо-запрос вместе с автоответом перемещаются в корзину. Если человек напишет вам в эту цепочку, то письмо окажется во входящих.
Для того чтобы понять на какие письма будет приходить автоответ сделайте запрос в почте is:inbox is:unread Запрос доступа к файлу
На моём скриншоте ничего нет, потому что все файлы уже были обработаны скриптом.
Создайте гугл скрипт
Вот шаги для создания скрипта Google Apps, который будет рассылать авто ответы на запросы доступа к файлам:
Откройте Google Диск и выберите «Создать» > «Ещё» > «Google Apps Script». Это откроет редактор скриптов.
В редакторе скриптов удалите код по умолчанию и добавьте следующее:
// Подробное описание в статье 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}`)
}
}
}
Сохраните сценарий, выбрав «Файл» > «Сохранить». Назовите скрипт, например, «Gmail auto-responder».
Запустите сценарий, щелкнув Выполнить, выбрав
autoReply
. Это отправит письма на адреса тех кто запрашивал доступ к файлам, но только если у вас уже есть запросы, то есть запрос в почтеis:inbox is:unread Запрос доступа к файлу
не пустой.
Добавьте триггер для автоматического запуска скрипта. Перейдите в «Триггеры текущего проекта». Нажмите «Добавить новый триггер» и выберите «Управляемый временем», чтобы запускать скрипт например один раз в день или даже раз в несколько минут.
Составьте текст письма для автоматического ответа
Это важная часть и я уделил этому достаточно большое место в статье, ведь получатель увидит только её. Можно руководствоваться несколькими правилами:
Приветствуйте отправителя по имени, если оно указано.
Вы можете получить имя отправителя из сообщения Gmail, используя:var senderName = message.getFrom().split("<")[0].trim();
Поблагодарите отправителя за запрос на доступ к файлу. Например:
Спасибо за ваш запрос на доступ к файлу.
Укажите, что это автоматический ответ. Например:
Это автоматический ответ системы запросов на доступ к файлам.
Укажите предполагаемые сроки ответа на запрос. Например:
Мы стараемся отвечать на все запросы на доступ к файлам в течение 2 рабочих дней.
Сообщите отправителю, чего ожидать в полном ответе.
Еще раз поблагодарите отправителя за терпение и понимание. Например:
Еще раз спасибо за ваше терпение и понимание.
Заканчивайте вежливо и профессионально. Например:
С наилучшими пожеланиями, [Ваше имя]
Заключение
Вот несколько способов использования скрипта Google Apps для автоматического ответа на запросы доступа к файлам по электронной почте:
Скрипт может проверять наличие новых непрочитанных писем, содержащих строку
Запрос доступа к файлу
и автоматически отправлять ответ. Это избавляет от необходимости вручную проверять каждый запрос и отвечать на него.Он может заполнять электронное письмо с автоматическим ответом деталями, характерными для каждого запроса, такими как имя отправителя, дата запроса и т. д. Это делает каждый ответ более персонализированным.
Автор: Михаил Шардин,
5 июня 2023 г.
Комментарии (8)
VikkorMalansohn
05.06.2023 01:09Тоже ничего не понял зачем вот вот это вот всё. Права на файл все равно выдает человек, значит читает письма, и может и удалять их. А вот почему они скапливаются не прочитанными и как эта процедура из автопрочтения, аатоответа и удаления помогает запрашивающему все таки получать доступ, не понятно.
empenoso Автор
05.06.2023 01:09Вы правы, запрашивающему получить доступ эта процедура вряд ли помогает, но эта статья и код про того, кто решает предоставлять доступ или нет. При помощи письма можно перенаправить на другие ресурсы например.
Javian
05.06.2023 01:09+1Большое спасибо.
Поделился файлом в комментариях на Хабре несколько лет назад. Все хорошо было пока Гугл не придумал запросы доступа. И в мою почту стали приходить "мешки писем от телезрителей" :) Не знаю где эта ссылка ходит, но приходят в узкие промежутки времени группами. Вероятно где-то на форуме/соцсети идет периодическое обсуждение темы и файл привлекает внимание к себе в эти моменты.VikkorMalansohn
05.06.2023 01:09+1Что мешает сделать доступ по ссылке для всех кто имеет эту ссылку. Не понятно.
Javian
05.06.2023 01:09+1Непонятно кому давать. Ссылка гуляет в той форме, которая была до этого нововведения.
1dNDN
Зачем отвечать на запросы доступа письмом? Просто дал доступ или не дал, уведомление запрашивающему придет все равно
В чем смысл автоматически отвечать на запросы доступа и удалять их? Их же шлют не чтобы получить ответ буквами, а чтобы получить доступ. Судя по статье, сам процесс выдачи доступа никак не автоматизируется
empenoso Автор
Так можно отправить сообщение тому кто запрашивает доступ к файлу. Ведь например если это таблица, то человек сразу увидит только таблицу. Что-то типа аннотации. Или с продажами можно связать.
Отвечать и удалять письма и запрос - смысл в том что если таких запросов очень много то они просто болтаются в почте и от них никакой пользы. Опять же в письме можно перенаправить на какие-то дополнительные материалы или что-то подобное.