开发者问题收集

无法读取属性“getMessages”-Google 脚本将 csv 附件从 Gmail 导入 Google 表格

2022-02-18
931

我使用 此解决方案 已有一段时间,用于将数据从 Gmail 导入 Google 表格。现在我想将相同的解决方案应用于不同的电子邮件线程。我只更改了 Gmail 中的标签过滤器,但无论我做什么,都会收到以下错误:

TypeError: Cannot read property 'getMessages' of undefined
importReport    @ import revenue product.gs:3

我使用的解决方案是:

function importProduct() {
  var threads = GmailApp.search("ENTER LABEL HERE"); 
  var message = threads[0].getMessages()[0];
  var attachment = message.getAttachments()[0];
  var sheet = SpreadsheetApp.openById("ENTER GOOGLE SHEETS ID HERE").getSheetByName("ENTER GOOGLE SHEETS NAME HERE");
  var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
   sheet.clearContents().clearFormats();
   sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

有人知道这是怎么回事以及我该如何解决这个问题吗?谢谢!

Execution log
2:33:28 PM  Notice  Execution started
2:33:29 PM  Error   
TypeError: Cannot read property 'getMessages' of undefined
importProduct   @ import revenue product.gs:3
2个回答

尝试一下

function importProduct() {
  var requete ="{label:yourLabelHere}"
  var threads = GmailApp.search(requete);
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    Logger.log(messages)
  }  
}
Mike Steelson
2022-02-18

非常感谢大家的帮助!我终于注意到哪里出了问题……我使用了不同的邮箱,导致脚本无法读取正确的电子邮件……很高兴终于找到了此设置中的错误 :)

roosbot
2022-02-23