【问题标题】:Import email Subject into a Google spreadsheet using sample code使用示例代码将电子邮件主题导入 Google 电子表格
【发布时间】:2015-03-15 14:59:19
【问题描述】:

我正在尝试使我在 Stackoverflow 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“标签”。

  • 我将一封电子邮件移至该“Facebook”标签。
  • 然后我创建了一个电子表格。
  • 我进入了该电子表格的脚本编辑器
  • 我创建了一个电子表格脚本
  • 我添加了上面贴的代码
  • 我运行了函数并授权了它们
  • 我再次运行 GetMessagesWithLabel 函数,出现以下错误。

TypeError:无法从未定义中读取属性“长度”。 (第 53 行,文件“代码”)

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

我希望有人可以帮助我完成这个示例。

问候,

克里斯

【问题讨论】:

    标签: google-apps-script gmail


    【解决方案1】:

    这一行:

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

    有错误。

    这个方法:

    getThreads(1,10)
    

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

    getThreads(0,10)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2011-09-10
      • 2011-11-20
      • 2017-10-19
      相关资源
      最近更新 更多