使用示例代码将电子邮件主题导入 Google 电子表格

Import email Subject into a Google spreadsheet using sample code

我正在尝试使我在 Whosebug post

上找到的代码正常工作

@Serge insas 发布了以下代码

function getMessagesWithLabel() {
     var destArray = new Array();
      var threads = GmailApp.getUserLabelByName('Facebook').getThreads(1,10);

      for(var n in threads){
            var msg = threads[n].getMessages();
            var destArrayRow = new Array();
            destArrayRow.push('thread has '+threads[n].getMessageCount()+' messages');
              for(var m in msg){
                         destArrayRow.push(msg[m].getSubject());
               }
      destArray.push(destArrayRow);           
            }
    Logger.log(destArray);
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS')};
    sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray)
    }

因此,为了使此代码正常工作,我创建了一个名为 'Facebook' 的 gmail 'label'。

TypeError: Cannot read property "length" from undefined. (line 53, file "Code")

第 53 行是 sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray)

我希望有人能帮助我使这个示例工作。

此致,

克里斯

这一行:

var threads = GmailApp.getUserLabelByName('Facebook').getThreads(1,10);

有错误。

这个方法:

getThreads(1,10)

应该有一个零参数而不是 1。

getThreads(0,10)

索引从零开始,不是一。您在新的 "Facebook" 标签中只有一封电子邮件。起始索引为 1,开始检索第二封电子邮件,然后上升到十。