Сохраняйте вложения Gmail на Google Диске - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу сохранить вложения gmail (файлы .pdf) из определенного электронного письма в определенную папку Google Диска. Мне также нужно переименовать файл с помощью строки, составленной из какой-либо строки письма.

Я разработал простой скрипт, использующий Google Apps Script с некоторыми функциями.

Это основная функция, которую я написал:

function GmailToDrive() {
    var query = '';
    query = 'in:inbox from:noreply@agyo.io has:nouserlabels ';
    var threads = GmailApp.search(query);
    var label = getGmailLabel_(labelName);
    var parentFolder;
    if (threads.length > 0) {
        parentFolder = getFolder_(folderName);
    }
    var root = DriveApp.getRootFolder();
    for (var i in threads) {
        var mesgs = threads[i].getMessages();
        for (var j in mesgs) {
            //get attachments
            var attachments = mesgs[j].getAttachments();
            var message_body = mesgs[j].getBody();
            for (var k in attachments) {
                var attachment = attachments[k];
                var isDefinedType = checkIfDefinedType_(attachment);
                if (!isDefinedType) continue;
                var attachmentBlob = attachment.copyBlob();
                var file = DriveApp.createFile(attachmentBlob);
                file.setName(renameFile_(attachment, message_body))
                parentFolder.addFile(file);
                root.removeFile(file);
            }
        }
        threads[i].addLabel(label);
    }
}

Функция checkIfDefinedType_(attachment) проверяет, является ли вложение PDF-файлом, а renameFile_(attachment, message_body) переименовывает вложение, извлекая некоторую строку из электронного письма.

Сценарий, кажется, правильно разработан, но иногда у меня в папке на диске Google сохраняются два или более одинаковых вложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...