猿问

Google Apps 脚本:将 Gmail 附件保存到 Google Drive

我非常接近完成我的 Google Apps 脚本项目,该项目正在解析一个简单的 2 行电子邮件并将附件链接(保存到 Google 云端硬盘的附件)添加到 Google 表格。


我一直坚持将电子邮件附件保存到 Google 云端硬盘。被注释掉的代码是不能正常工作的块。我举了一个例子:在 Google Drive 上保存 Gmail 附件——但它似乎对我不起作用。


附上我的完整代码。


function parseEmailMessages() {


  var threads = GmailApp.search('label:test',0,100);

  var sheet = SpreadsheetApp.openById('<<SHEET ID>>');

  var folder = DriveApp.getFolderById('<<FOLDER ID>>');

  var testLabel = GmailApp.getUserLabelByName('test');

  var doneLabel = GmailApp.getUserLabelByName('finished');


  for (var i = 0; i < threads.length; i++) {

    var message = threads[i].getMessages();

    for (var j in message) {

      var content = message[j].getPlainBody();


      /*

      var attachments = threads[j].getAttachments();

      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);

      }

      */


    }


    var [name, date] = content.split("\n");    


    function latestFile() {

      var gDriveFolder = DriveApp.getFolderById('<<FOLDER ID>>');

      var gDriveFile = gDriveFolder.getFiles();

      var lastFileId = gDriveFile.next().getId(); 

      return lastFileId.toString();

    }


    var urlStart = 'https://drive.google.com/a/<<DOMAIN>>/file/d/';

    var urlString = latestFile();

    var urlEnd = '/view?usp=drivesdk';    

    var pic = urlStart + urlString + urlEnd;


    sheet.appendRow([name,date,pic]);


    threads[i].removeLabel(testLabel);

    threads[i].addLabel(doneLabel);


  }

}

我收到的错误是:“TypeError:在对象 GmailThread 中找不到函数 getAttachments。”


确实,文档中的 getAttachments 似乎不是 GmailThread 的一部分,但我目前不确定如何实现我的目标。


哆啦的时光机
浏览 319回答 1
1回答

喵喔喔

getAttachments()不是 GmailThread 类的方法。那么下面的修改呢?从:var&nbsp;attachments&nbsp;=&nbsp;threads[j].getAttachments();到:var&nbsp;attachments&nbsp;=&nbsp;message[j].getAttachments();参考:获取附件()如果这不是直接的解决方案,我深表歉意。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答