5. Сохранение электронной почты в формате PDF на Google Диске
мощью фильтров вы можете настроить автоматизацию, чтобы лучше организовать свой почтовый ящик. Однако для опытных пользователей функции фильтра недостаточно по сравнению с написанием собственных сценариев. Эти восемь скриптов Google помогут еще больше автоматизировать вашу почту Gmail.Совет. попробуйте еще один простой совет по Gmail: настроить автоматическую переадресацию в Gmail .
1. Автоматическое удаление электронной почты через X дней
Очень часто, прочитав электронные письма, мы просто оставляем их в своем почтовом ящике, независимо от того, насколько они полезны. Теперь, когда Google установил ограничение на пространство, вы можете очистить свой почтовый ящик и избавиться от бесполезных писем. Следующий скрипт может проверять электронную почту с меткой «
Contents
- 1 1. Автоматическое удаление электронной почты через X дней
- 2 2. Архивировать все старые письма
- 3 3. Получайте SMS-уведомления о важных письмах
- 4 4. Создайте сводку своих писем
- 5 5. Сохранение электронной почты в формате PDF на Google Диске
- 6 6. Автоматически отправлять последующие электронные письма
- 7 7. Отмечайте электронные письма по ключевому слову темы
- 8 8. Переслать определенные электронные письма на несколько других адресов
- 9 Часто задаваемые вопросы
1. Автоматическое удаление электронной почты через X дней
что вы вошли в свою учетную запись Google, перейдите к Google скрипты и создайте новый проект.- Вставьте следующий скрипт и сохраните его. Вы можете изменить количество дней (переменная
delayDays
), по истечении которого сообщения электронной почты будут удалены из вашего почтового ящика.
function auto_delete_mails() { var label = GmailApp.getUserLabelByName("Delete Me"); if(label == null) { GmailApp.createLabel('Delete Me'); } else { var delayDays = 2; // Enter # of days before messages are moved to trash var maxDate = new Date(); maxDate.setDate(maxDate.getDate()-delayDays); var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { if (threads[i].getLastMessageDate()<maxdate) { threads[i].movetotrash(); } } } }
- Создайте новый триггер для запуска сценария по расписанию. Откройте «значок расписания в меню слева ->Триггеры ->Добавить триггер».
- Настройте параметры триггера так, чтобы сценарий запускался каждый час (или так часто, как вы пожелаете), затем прокрутите вниз и нажмите «Сохранить».
После запуска этого сценария в вашей учетной записи Gmail будет создан новый ярлык «Удалить меня». Отмечайте нежелательные письма этой меткой, и они будут удалены через количество дней, указанное в вашем скрипте.
Совет. Если кажется, что ваша электронная почта выходит из-под контроля, прочитайте наши обзор SaneBox и посмотрите, поможет ли она вам справиться с вашей электронной почтой.р>
2. Архивировать все старые письма
Если вам нужен менее опасный вариант, чем удаление электронной почты, вы можете создать сценарий для архивации всей вашей старой электронной почты, выполнив следующие действия.
- Создайте новый скрипт Google со следующим кодом:
function archiveOldEmails() { // Get all the threads in the inbox var threads = GmailApp.getInboxThreads(); // Loop through all the threads for (var i = 0; i < threads.length; i++) { var thread = threads[i]; var messages = thread.getMessages(); // Loop through all the messages in the thread for (var j = 0; j < messages.length; j++) { var message = messages[j]; var age = (new Date() - message.getDate()) / (1000 * 60 * 60 * 24); // If the message is older than 30 days, archive it if (age > 30) { thread.moveToArchive(); } } } }
- Создайте триггер (как показано выше) для е
2. Архивировать все старые письма
>В выбранное вами время скрипт запустится и переместит электронные письма из вашего почтового ящика в архив. Эти заархивированные электронные письма по-прежнему будут доступны в разделе «Вся почта».Полезно знать: если вас не волнуют электронные письма в вашем почтовом ящике и вы просто хотите быстро их очистить, в этом руководстве показано, как отметьте все свои непрочитанные письма как прочитанные и удалите их. .
3. Получайте SMS-уведомления о важных письмах
Этот скрипт Google использует функцию SMS Календаря Google, чтобы отправлять вам SMS, когда вы получаете важное электронное письмо.
- Создайте новый скрипт Google со следующим кодом:
function Gmail_send_sms(){ var label = GmailApp.getUserLabelByName("Send Text"); if(label == null){ GmailApp.createLabel('Send Text'); } else{ var threads = label.getThreads(); var now = new Date().getTime(); for (var i = 0; i < threads.length; i++) { var message = threads[i].getMessages()[0]; var from = message.getFrom(); var subject = message.getSubject(); CalendarApp.createEvent(subject, new Date(now+60000), new Date(now+60000), {location: from}).addSmsReminder(0); } label.removeFromThreads(threads); } }
- Сохраните его и создайте триггер, который будет запускаться каждые пять минут.
- Создайте новый фильтр Gmail, который автоматически добавляет метку «Отправить текст» к выбранным вами входящим письмам. В Gmail нажмите значок «Параметры поиска» в верхней строке поиска.
- Настройте критерии для SMS-уведомлений, которые будут предупреждать вас о наличии важного письма во входящих, затем нажмите «Создать фильтр».
3. Получайте SMS-уведомления о важных письмах
t.ru/wp-content/uploads/2024/05/Automate-Gmail-2-Search-Filters.jpg" alt="Автоматизация поисковых фильтров Gmail 2">
- Отметьте «Применить метку», выберите «Отправить текст» и нажмите «Создать фильтр».
Скрипт будет сканировать ваш почтовый ящик каждые пять минут. Когда он обнаруживает электронное письмо с меткой «Отправить текст», он немедленно создает событие в Календаре Google, которое запускает SMS.
Совет. вы также можете отправлять текстовые SMS-сообщения с вашего компьютера .
4. Создайте сводку своих писем
Вместо того, чтобы читать всю вашу электронную почту по отдельности, вы можете написать сценарий, который будет создавать единую сводку непрочитанных писем.
- Создайте новый скрипт Google со следующим кодом:
function createEmailSummary() { // Search for unread emails var threads = GmailApp.search("is:unread"); var summary = "Unread Emails:\n"; for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); for (var j = 0; j < messages.length; j++) { var message = messages[j]; summary += message.getFrom() + ": " + message.getSubject() + "\n"; } } // Search for emails with specific keywords in the subject var threads = GmailApp.search("subject:(important meeting)"); summary += "\nEmails with keyword 'important meeting' in the subject:\n"; for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); for (var j = 0; j < messages.length; j++) { var message = messages[j]; summary += message.getFrom() + ": " + message.getSubject() + "\n"; } } // You can add more search criteria here // ... // Send the summary as an email GmailApp.sendEmail("[email protected]", "Email Summary", summary); }
- Замените «[email protected]» на свой адрес электронной почты.
- Создайте новый триггер для ежедневного запуска сценария.
Когда скрипт запустится, он отправит вам электронное письмо, в котором будет указано, сколько писем каждого типа вы еще не прочитали. Сценарий выше является хорошей отправной точкой — он подсчитывает количество писем с «важной встречей» в теме. Вы можете настроить скрипт так, чтобы он учитывал нужные критерии поиска.
5. Сохранение электронной почты в формате PDF 4. Создайте сводку своих писем
электронное письмо, которое вы хотите заархивировать на Google Диске, вы можете использовать скрипт Google, чтобы сохранить его в формате PDF в своей учетной записи Google Диска. Следующий скрипт сохранит все сообщения в ветке электронной почты в виде одного PDF-файла на вашем Google Диске. Если в электронном письме есть вложения, будет создана папка, в которой будут храниться сообщения и вложения.
- Создайте новый скрипт Google со следующим кодом:
function save_Gmail_as_PDF() {
// Get the label "Save As PDF" or create it if it doesn't exist
var label = GmailApp.getUserLabelByName("Save As PDF");
if(label == null){
label = GmailApp.createLabel('Save As PDF');
}
// Get the threads with the label
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var subject = messages[0].getSubject();
var bodys = [];
// Loop through all messages in thread
for(var j = 0; j < messages.length; j++){
var message = messages[j];
bodys.push({
body: message.getPlainBody(),
from: message.getFrom(),
});
var attachments = message.getAttachments();
var temp_attach = message.getAttachments();
if(temp_attach.length > 0){
for(var k =0; k < temp_attach.length; k++){
attachments.push(temp_attach[k]);
}
}
}
// Create a Google Docs document from the message body
var bodyDoc = DocumentApp.create(subject);
var bodyDocId = bodyDoc.getId();
var bodyDocFile = DriveApp.getFileById(bodyDocId);
var bodyDocBody = bodyDoc.getBody();
bodyDocBody.setText(bodys.map(obj => `From: ${obj.from}\n${obj.body}`).join('\n\n'));
bodyDoc.saveAndClose();
// Convert the Google Docs document to a PDF
var blob = bodyDocFile.getAs('application/pdf');
var pdfFile = DriveApp.createFile(blob);
// If there are attachments
if(attachments.length > 0){
// Create a folder in Drive with the message subject
var folder = DriveApp.createFolder(subject);
for (var j = 0; j < attachments.length; j++) {
folder.createFile(attachments[j]);
}
// Add the PDF file of the message body to the folder
folder.createFile(pdfFile);
}
// Remove the Google Docs document from Google Drive
DriveApp.getFileById(bodyDocId).setTrashed(true);
// Remove the label from the thread
label.removeFromThread(threads[i]);
}
}
- Сохраните его и установите триггер для его запуска через регулярные промежутки времени.
function save_Gmail_as_PDF() { // Get the label "Save As PDF" or create it if it doesn't exist var label = GmailApp.getUserLabelByName("Save As PDF"); if(label == null){ label = GmailApp.createLabel('Save As PDF'); } // Get the threads with the label var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); var subject = messages[0].getSubject(); var bodys = []; // Loop through all messages in thread for(var j = 0; j < messages.length; j++){ var message = messages[j]; bodys.push({ body: message.getPlainBody(), from: message.getFrom(), }); var attachments = message.getAttachments(); var temp_attach = message.getAttachments(); if(temp_attach.length > 0){ for(var k =0; k < temp_attach.length; k++){ attachments.push(temp_attach[k]); } } } // Create a Google Docs document from the message body var bodyDoc = DocumentApp.create(subject); var bodyDocId = bodyDoc.getId(); var bodyDocFile = DriveApp.getFileById(bodyDocId); var bodyDocBody = bodyDoc.getBody(); bodyDocBody.setText(bodys.map(obj => `From: ${obj.from}\n${obj.body}`).join('\n\n')); bodyDoc.saveAndClose(); // Convert the Google Docs document to a PDF var blob = bodyDocFile.getAs('application/pdf'); var pdfFile = DriveApp.createFile(blob); // If there are attachments if(attachments.length > 0){ // Create a folder in Drive with the message subject var folder = DriveApp.createFolder(subject); for (var j = 0; j < attachments.length; j++) { folder.createFile(attachments[j]); } // Add the PDF file of the message body to the folder folder.createFile(pdfFile); } // Remove the Google Docs document from Google Drive DriveApp.getFileById(bodyDocId).setTrashed(true); // Remove the label from the thread label.removeFromThread(threads[i]); } }
Если вы хотите сохранить электронное письмо и вложения к нему на Google Диске, просто пометьте его меткой «Сохранить в PDF». Текст каждого письма и отправитель в каждой цепочке будут показаны по порядку, начиная с самого старого.
Полезно знать: не уверены сколько файлов у вас в папке Google Диска ? В этом руководстве показано, как это выяснить.
6. Автоматически отправлять последующие электронные письма
Вы не всегда можете получить быстрый ответ на свои электронные письма. Чтобы решить эту проблему, вы можете отправить последующее электронное письмо с напоминанием получателям электронной почты. Вместо того, чтобы писать каждое сообщение вручную, вы можете отправлять его автоматически с помощью скрипта!
- Создайте новый скрипт Google со следующим кодом:
function sendFollowupEmails() { const startDate = new Date('2023-01-01'); const daysAgo = 3; var dateInPast = new Date(); dateInPast.setDate(dateInPast.getDate() - daysAgo); var threads = GmailApp.search("is:sent before:" + dateInPast.toLocaleDateString() + " after:" + startDate.toLocaleDateString()); for (var i = 0; i < threads.length; i++) { var conversation = threads[i]; var foundResponse = false; // If a sent thread has more than 1 email, we don't need to followup // because we either followed up already or they responded. if (conversation.getMessages().length > 1) { foundResponse = true; } if (!foundResponse) { var body = "Hi, I just wanted to follow up on my previous email. If I get no reply I will assume you are not interested. \n\nBest regards,\n[Your Name]"; conversation.replyAll(body); } } }
- Настройте несколько элементов в этом скрипте:
- Измените
startDate
на время, более близкое к настоящему времени, чтобы не воскрешать очень старые темы. - Измените
daysAgo
, чтобы указать, насколько давно должно быть электронное письмо, прежде чем отправлять ответное сообщение. - Замените
[Your Name]
на свое имя.
- Сохраните его и установите триггер, который будет запускаться каждые семь дней.
Продолжайте отправлять электронные письма в обычном режиме, и скрипт автоматически обработает последующие действия.
7. Отмечайте электронные письма по ключевому слову темы
Если у вас завалено электронными письмами, но вы не хотите удалять большую часть из них, вы можете использовать этот скрипт, чтобы маркировать и упорядочивать их по содержанию.
- Создайте новый скрипт Google со следующим кодом:
function categorizeEmails() { const emailsToGet = 50; var keywords = { "promo": "Promotions", "offer": "Promotions", "discount": "Promotions", "newsletter": "Newsletters", "action": "Todo", "required": "Todo", "shipped": "Orders", "delivered": "Orders", "receipt": "Orders", "invoice": "Orders" }; var threads = GmailApp.getInboxThreads(0, emailsToGet); for (var i = 0; i < threads.length; i++) { var subject = threads[i].getFirstMessageSubject().toLowerCase(); var labels = GmailApp.getUserLabels(); var foundLabel = false; for (var keyword in keywords) { if (subject.indexOf(keyword) !== -1) { for (var j = 0; j < labels.length;6. Автоматически отправлять последующие электронные письма
pan>(labels[j].getName() === keywords[keyword]) { threads[i].addLabel(labels[j]); foundLabel = true; break; } } if (!foundLabel) { GmailApp.createLabel(keywords[keyword]); threads[i].addLabel(GmailApp.getUserLabelByName(keywords[keyword])); } break; } } } }
- Вы можете настроить количество затронутых электронных писем с помощью переменной
emailsToGet
или ключевых слов и меток с помощью переменнойkeywords
. - Сохраните скрипт и установите триггер на запуск каждые несколько минут или часов.
Это позволяет вам быть в курсе событий, просматривая только электронные письма с определенным ярлыком. Этот скрипт хорошо работает с большей частью вашей электронной почты, избавляя вас от необходимости просто удалять их.
Совет: настроить несколько подписей в Gmail и быстро переключайтесь между ними для разных аудиторий.
8. Переслать определенные электронные письма на несколько других адресов
Хотя в Gmail есть встроенный способ пересылки электронной почты на другой адрес электронной почты, переслать электронную почту с определенными критериями на несколько адресов электронной почты нелегко, а этот скрипт может.
- Создайте новый скрипт со следующим кодом:
function emailForwarding() { const emailsToGet = 50; var criteria = [ { sender: "[email protected]", subjectContains: "invoice", forwardTo: ["[email protected]", "[email protected]"] }, { sender: "[email protected]", subjectContains: "urgent", forwardTo: ["[email protected]", "[email protected]"] } ]; var label = GmailApp.getUserLabelByName("Forwarded")<7. Отмечайте электронные письма по ключевому слову темы
l) { label = GmailApp.createLabel("Forwarded"); } var threads = GmailApp.search("is:inbox", 0, emailsToGet); for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); console.log('thread id:', threads[i].getId()); for (var j = 0; j < messages.length; j++) { var message = messages[j]; var sender = message.getFrom(); var subject = message.getSubject().toLowerCase(); console.log('sender', sender, 'subject', subject); for (var k = 0; k < criteria.length; k++) { var rule = criteria[k]; if (sender.indexOf(rule.sender) != -1 && subject.indexOf(rule.subjectContains) != -1) { var recipient = rule.forwardTo.join(","); GmailApp.sendEmail(recipient, subject, message.getPlainBody(), {cc: sender}); threads[i].addLabel(label); } } } } }
- Настройте критерии по мере необходимости.
- Создайте триггер, который будет запускать скрипт каждые несколько минут или часов.
Ваш Gmail автоматически пересылает электронные письма, соответствующие вашим критериям, на два или более адресов электронной почты.
Полезно знать: в Gmail есть встроенный метод автоматический ответ на электронную почту, если вы в отпуске или вне офиса .
Часто задаваемые вопросы
Бесплатно ли использовать Google Apps Script?
Да, Google Apps Script можно использовать бесплатно, если у вас есть учетная запись Gmail. Однако вы используете десятки квоты и ограничения . Google может изменить их в любое время, но на момент написания они включают около 40 функций, таких как создание документов, чтение/запись электронной почты, создание электронных таблиц и триггеры общего времени выполнения. У бесплатных учетных записей очень низкий лимит, а у Google Workspace — гораздо более высокий.
Могу ли я использовать Google Apps Script для доступа к данным из других служб?
Да, Google Apps Script не ограничивается работой со службами Google. Вы получаете доступ к данным из внешних сервисов, не принадлежащих Google, в Интернете (например, API покемонов ) с помощью встроенных классов, таких как УрлФетчапп , например:
var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto");
Logger.log(response.getContentText()); // All details of Ditto would be logged
Что делать, если я получаю ошибки в скрипте Google Apps?
Вы можете отладить свой код, чтобы выявить и исправить ошибку. К счастью, Google Apps Script имеет встроенный отладчик, который можно использовать для устранения неполадок в к
8. Переслать определенные электронные письма на несколько других адресов
а». Отсюда вы можете устанавливать точки останова, пошагово выполнять код и проверять переменные, чтобы выявить любые проблемы.Автор изображения: Пексели . Все скриншоты сделаны Брэндоном Ли.