Gmail 应用程序:查找具有日历条目的线程

Gmail App: Find threads which have a calendar entry

有些邮件的顶部有日历条目,如下所示:

在 GScript 中,有什么方法可以找到包含这些日历条目的邮件吗?如果是这样,如何从中提取信息?

更新

我幸运地发现它被归类为附件(ics类型),但仍然存在从该文件中提取数据的问题...

试试这个:

function getIcs(){
  var threads = GmailApp.getInboxThreads();
  var thread, messages, message, attachments, attachment;
  var result = [];

  for (var i = 0; i < threads.length; i++){
    messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++){
      message = messages[j];
      attachments = message.getAttachments();
      for (var k = 0; k < attachments.length; k++){
        attachment = attachments[k];        
        if(attachment){
          if (attachment.getContentType() == "application/ics"){
            Logger.log("found ics");//continue;
            result.push(message);
          }
        }
      }
    }
  }
  return result;
}

此方法将查看每个话题、其中的每条消息以及每条消息中的每个附件,并且 return 是具有 application/ics 类型附件的 message objects 的列表。

更新

除了我之前的代码之外,以下函数将 return 基于在其他方法中找到的附件的事件对象数组:

function getSutff(){
  var msgs = getIcs();
  var ics;
  var position;
  var eventId;
  var event = [];

  for (var i = 0; i < msgs.length; i++){
    ics = msgs[i].getAttachments()[0].getDataAsString();
    position = (ics.search("UID:")) + 4;
    eventId = ics.substr(position,26);
    event.push(CalendarApp.getEventById(eventId));
  }
  Logger.log(event)
  return event;
}