Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌脚本仅从Gmail收件箱提取500封电子邮件_Google Apps Script_Google Sheets_Gmail - Fatal编程技术网

Google apps script 谷歌脚本仅从Gmail收件箱提取500封电子邮件

Google apps script 谷歌脚本仅从Gmail收件箱提取500封电子邮件,google-apps-script,google-sheets,gmail,Google Apps Script,Google Sheets,Gmail,我正在使用我在网上找到的一个脚本,在我的收件箱(gmail)中按标签提取电子邮件。大约有1300封标有“已完成”的电子邮件 它按预期工作,但它总是在达到500行后停止,或者它从我的gmail中提取了500封带标签的电子邮件。我使用的是商业版的gmail,所以我认为不应该有大小限制,但可能有,我还没有找到任何细节 我已经把代码贴在下面了 ​​​function onOpen() { var ui = SpreadsheetApp.getUi(); var menu = ui.createM

我正在使用我在网上找到的一个脚本,在我的收件箱(gmail)中按标签提取电子邮件。大约有1300封标有“已完成”的电子邮件 它按预期工作,但它总是在达到500行后停止,或者它从我的gmail中提取了500封带标签的电子邮件。我使用的是商业版的gmail,所以我认为不应该有大小限制,但可能有,我还没有找到任何细节

我已经把代码贴在下面了

​​​function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('Emails')
  var item = menu.addItem('Extract Emails','myFunction')
  var item = menu.addItem('Delete Emails','clearRange')

      .addToUi();
}


function myFunction() {
  // Use sheet
  var ss = SpreadsheetApp.getActiveSheet();
  // Gmail query
  var query = "label:COMPLETED";
  // Search in Gmail, bind to array
  var threads = GmailApp.search(query);
  // Loop through query results
  for (var i = 0; i < threads.length; i++)
  {
    // Get messages in thread, add to array
    var messages = threads[i].getMessages();

    // Used to find max index in array
    var max = messages[0];
    var maxIndex = 0;

    // Loop through array to find maxIndexD = most recent mail
    for (var j = 0; j < messages.length; j++) {
      if (messages[j] > max) {
        maxIndex = j;
        max = messages[j];
      }
    } 
    // Find data
    var mId = messages[maxIndex].getId() // ID used to create mail link
    var from = messages[maxIndex].getFrom();
    var cc = messages[maxIndex].getCc();
    var time = messages[maxIndex].getDate()
    var sub = messages[maxIndex].getSubject();

    // Write data to sheet
    ss.appendRow([from, cc, time, sub, 'https://mail.google.com/mail/u/0/#inbox/'+mId])
  }
}​
​​​函数onOpen(){
var ui=SpreadsheetApp.getUi();
var menu=ui.createMenu(“电子邮件”)
var item=menu.addItem('Extract email','myFunction')
var item=menu.addItem('Delete email','clearRange')
.addToUi();
}
函数myFunction(){
//使用表
var ss=SpreadsheetApp.getActiveSheet();
//Gmail查询
var query=“标签:已完成”;
//在Gmail中搜索,绑定到数组
var threads=GmailApp.search(查询);
//循环查询结果
对于(var i=0;i最大值){
maxIndex=j;
max=消息[j];
}
} 
//查找数据
var mId=messages[maxIndex].getId()//用于创建邮件链接的ID
var-from=messages[maxIndex].getFrom();
var cc=messages[maxIndex].getCc();
var time=messages[maxIndex].getDate()
var sub=messages[maxIndex].getSubject();
//将数据写入工作表
ss.appendRow([from,cc,time,sub,'https://mail.google.com/mail/u/0/#inbox/“+mId])
}
}​
任何帮助都将不胜感激。非常感谢。
这是我的工作表的复印件,以及它是如何设置的

替换
var threads=GmailApp.search(查询)怎么样
with
var threads=GmailApp.getInboxThreads()
刚刚尝试了你的建议。但现在它只从我的收件箱中获取电子邮件。不是我的Gmail中指定的文件夹。哦,你确实想要这个标签。顺便说一下,你的收件箱中没有文件夹,它们是标签。在500条左右的帖子中可能会有1300封电子邮件。抱歉,我会编辑上面的帖子来反映这一点。是的,我想从我的gmail中获取所有标有“已完成”的电子邮件。我有超过1300封标记为已完成的个人电子邮件。我只需要检索电子邮件中第一条消息的主题和日期,这是否回答了您的问题?