2014-01-08 152 views
0

我从网上某处复制了此功能。我的目标是将我的Gmail帐户中特定标记的电子邮件的主体导入到Google电子表格中。虽然在编码方面我并不完全无能为力,但我并不熟悉这些东西。Google云端硬盘电子表格脚本问题

一些可能相关的细节:我尝试导入的每个电子邮件都不是对话,它们是收到的单个电子邮件,没有响应,也没有线程中的早期消息。我希望每个电子邮件的整个主体都放置在电子表格的单个单元格中。

事实上,只有主题被放置在我的电子表格中。我怎样才能让它带来身体呢?我觉得它被放置在数组中,但是在循环setValue时它会被跳过。

很多爱人们!

代码:

function getMessagesWithLabel() { 
var destArray = new Array(); 
    var threads = GmailApp.getUserLabelByName('abc').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) 
} 
+0

我建议您编辑您的问题,以清楚您的实际问题或关闭它,然后用您遇到的实际问题创建一个新问题。 –

+0

完成。希望这会帮助我找到答案。 – Grouchy

回答

0

你不使用.getBody()在脚本的任何地方?在这样的情况下,我每个消息存储为与主题和正文作为单独的值的对象:

console.log(contentArray[0].subject); 
console.log(contentArray[0].body); 

var msg = threads[n].getMessages(); 
var contentArray = []; 

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

    var obj = { 
    subject: msg[i].getSubject(), 
    body: msg[i].getBody()  
    }; 

    contentArray.push(obj); 

} 

这些值然后可以通过使用以下表示法来迭代

相关问题