Google apps脚本逐行输出电子邮件正文



我有一个工作表脚本,它捕获带有其中一个表的特定电子邮件的正文。到目前为止,这一直工作得很好,但我现在已经达到了单个单元格问题的50000个字符限制。我用的是:

= '(分裂(C1, CHAR(10),真的))

,以便逐行拆分内容,所以现在需要编写此脚本,以便将电子邮件正文一行一行地传递到工作表中。

我最好的方法是什么?

谢谢

最终我自己找到了答案,感谢这里的精英回应者(Serge/Mogsdad/Sandy等人),他们对之前问题的回答提供了所有线索。首先使用Serge的getMessage代码。我知道,比使用appendRow更好的方法,但是有些方法不能处理格式不佳的html内容(例如,将行放入数组会导致关于范围宽度的错误)。我的脚本只调用一个电子邮件,最近的一个选定的标签。

下面是覆盖它的函数:

function getMessageWithLabel() {
 var destArray = new Array();
  var threads = GmailApp.getUserLabelByName('<GMailLabel>').getThreads(0,1);
  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].getBody());
           }
  destArray.push(destArrayRow);           
        }
  //open spreadsheet and set sheet for appending data
  var ss = SpreadsheetApp.openById('<Google Spreadsheet ID>');
  var sh5 = ss.getSheets()[4];
  //get number of lines in content
  var lines = destArrayRow[0].split('n');
  var length = lines.length;
  //appendRow for each line in content  
  for (var i = 0; i <= length; i++) {
   sh5.appendRow([lines[i]]);
  }
}

最新更新