我正在努力使代码工作在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“标签”。
TypeError:无法从undefined中读取属性“length”。 (第53行,文件“代码”)
第53行是 sh.getRange(ss.getLastRow()+ 1,1,destArray.length,destArray [0]。长度).setValues(destArray)
我希望有人可以帮助我让这个例子有用。
此致
克里斯
答案 0 :(得分:2)
这一行:
var threads = GmailApp.getUserLabelByName('Facebook').getThreads(1,10);
有错误。
此方法:
getThreads(1,10)
应该有一个零参数而不是一个。
getThreads(0,10)
索引从零开始,而不是一个。您只有一封电子邮件在新的" Facebook"标签。起始索引为1,开始检索第二封电子邮件,然后最多为10。