Javascript 如何使用谷歌应用程序脚本以定制的方式检索Gmail电子邮件?

Javascript 如何使用谷歌应用程序脚本以定制的方式检索Gmail电子邮件?,javascript,google-apps-script,Javascript,Google Apps Script,下面是我编写的一段简洁的javascript代码,用于从我的Gmail中获取所有电子邮件,并将发件人姓名列表放入谷歌电子表格中 function doGet() { var myspreadsheet = SpreadsheetApp.openById("0Atg1TJnn4dFdGbjNGSrMGJRdGc"); var mysheet = myspreadsheet.getSheets()[0]; var threads = GmailApp.getInboxThreads();

下面是我编写的一段简洁的javascript代码,用于从我的Gmail中获取所有电子邮件,并将发件人姓名列表放入谷歌电子表格中

function doGet()
{
  var myspreadsheet = SpreadsheetApp.openById("0Atg1TJnn4dFdGbjNGSrMGJRdGc");
  var mysheet = myspreadsheet.getSheets()[0];
  var threads = GmailApp.getInboxThreads();
  var messages = GmailApp.getMessagesForThreads(threads); 
  var froms = [];

  for(var i = 0; i < threads.length; i++)
  {
    froms.push([messages[i][0].getFrom(),i]);
  }

  mysheet.getRange(1,1,threads.length,2).setValues(froms);

}
函数doGet()
{
var myspreadsheet=SpreadsheetApp.openById(“0ATG1TJNN4DFGBJNGSRMGJRDGC”);
var mysheet=myspreadsheet.getSheets()[0];
var threads=GmailApp.getInboxThreads();
var messages=GmailApp.getMessagesForThreads(线程);
var-froms=[];
对于(var i=0;i
它工作得很好,但有两个问题

  • 无论你尝试什么,这种方法都只能收到前500封电子邮件。问题是,有人知道如何获得超过500英镑吗?那就从前500封邮件中得到最后500封怎么样

  • 这有点慢,虽然我花了很多精力来提高效率,但有人能建议如何从电子邮件中检索发件人姓名,并快速将发件人姓名列表放在电子表格上吗


  • 这样看起来大约是10秒/100条消息。想不出比汽油更快的了

    function getMail(){
        var inc = 100;
        var start = 0;
        do  {
            var now = new Date();
          var thread = GmailApp.getInboxThreads(start, inc);
    
          start += inc;
          var messages = GmailApp.getMessagesForThreads(thread);
          Logger.log("# threads"+thread.length+"# of messages" + messages.length+" time :"+(new Date()-now));
    
          }  while (thread.length == inc);
      } 
    

    方法getInboxThreads(start,max)允许您浏览所有线程。请澄清您的答案?我怎样才能浏览我gmail中的4000个线程呢?谢谢,我现在知道我的错误了,原因是我认为getInboxThreads使用参数start和max作为起始线程号和结束线程号,但结果是错误的,它是从哪个线程号开始,我们需要多少线程。谢谢