Google-apps-script

Загрузите сообщения Gmail в виде файлов EML на Google Диск

Этот Google Script поможет вам загрузить сообщения электронной почты от Gmail на свой Google Drive в формате EML.

Что такое формат EML

Формат файла .eml популярен для передачи электронной почты из одной почтовой программы в другую, поскольку он соответствует стандарту RFC 822 и, следовательно, может быть изначально открыт внутри Apple Mail и Microsoft Outlook. Вы даже можете открывать файлы EML в Google Chrome, перетаскивая файл со своего рабочего стола на новую таблицу браузера.
Файлы EML содержит сообщения электронной почты (тело электронной почты, заголовок и кодированные изображения и вложения) в виде простого текста в формате MIME.

Загрузить сообщение Gmail в виде файлов EML

В Gmail откройте любую цепочку писем, перейдите в меню с тремя точками и выберите в меню «Загрузить сообщение». Он превратит ваше текущее сообщение электронной почты в файл eml и сохранит его на рабочем столе.
Однако, если вы хотите автоматизировать процесс и загрузить несколько электронных писем в виде файлов электронной почты на свой Google Диск, вам может помочь скрипт приложений.
const downloadEmails = () => {
const sender = 'sender@domain.com';
const threads = GmailApp.search(`from:${sender}`).slice(0, 10);
threads.forEach((thread) => {
const subject = thread.getFirstMessageSubject();
const [message] = thread.getMessages();
const rawContent = message.getRawContent();
const blob = Utilities.newBlob(rawContent, null, `${subject}.eml`);
const file = DriveApp.createFile(blob);
Logger.log(subject, file.getUrl());
});
};

Скрипт ищет электронные письма от указанного отправителя, получает первое сообщение электронной почты и загружает его на ваш Google Диск.

Переслать Gmail как вложение EML

Если вы должны переслать сообщение электронной почты в виде вложения, можно рекомендовать формат.eml, поскольку он сохраняет все форматирование и вложения исходной цепочки писем в одном файле, который можно прикрепить к электронному письму.
const forwardEmail = () => {
const messageId = '123';
const message = GmailApp.getMessageById(messageId);
const rawContent = message.getRawContent();
const blob = Utilities.newBlob(rawContent, null, `email.eml`);
GmailApp.sendEmail('to@gmail.com', 'This email contains an eml file', '', {
attachments: [blob],
});
};

Также см.: Скачать Gmail в виде файлов PDF