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;
}
有些邮件的顶部有日历条目,如下所示:
在 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;
}