2015-01-10 4 views
0

Я пишу скрипт, который читает и обрабатывает приглашения на календарь, полученные на моей учетной записи электронной почты.Чтение содержимого приглашения на приглашение

Проблема заключается в том, что:

//there is only one message that is the result of this filter, and it contains a calendar invite 
var threads = GmailApp.search('is:unread from:[email protected] has:attachment',0,10); 
var msgs = GmailApp.getMessagesForThreads(threads); 
var attachments = msgs[0][0].getAttachments(); 

вложение = 0, а это означает, что в то время как Gmail фильтр считает, что календарь пригласите является приложением и фильтры это правильно, скрипты Google Apps, по-видимому, не считает календарь приглашает в качестве вложения ,

Как программно читать электронное письмо с приглашением на календарь?

Бест,

OP

+0

Calandar приглашает от Google отличается от внешнего вида. Outlook приглашает меняться в зависимости от того, через какой сервер обмена они проходят. это всего лишь две системы; – Jonathon

+0

Спасибо за понимание! У меня не должно возникнуть проблем с обработкой и обработкой приглашений в разных форматах, но у меня возникают проблемы с возможностью чтения приглашений в скриптах приложений. –

+0

Точка в том, что трудно определить надежные критерии поиска, чтобы получить их, поэтому это важно, прежде чем беспокоиться о разборе. Не все имеют приложения. многие отправляются как многочастные. Или ваш вопрос об известном постоянном источнике? – Jonathon

ответ

0

У меня нет проблем с получением календарного пригласить в качестве приложения с помощью Apps сценария. Ваш код:

function getCalAttach() { 
    var threads = GmailApp.search('is:unread from:[email protected] has:attachment',0,10); 
    var msgs = GmailApp.getMessagesForThreads(threads); 
    var attachments = msgs[0][0].getAttachments(); 
    var readAtt = attachments[0].getDataAsString(); 
    Logger.log(readAtt); 
} 

Записывает вложение без проблем, и я могу получить данные в виде строки. Это работало для меня, используя как собственный календарь Gmails, так и при поиске приглашения из другой почтовой системы.

Logging Output

+1

Как минимум одно приглашение Microsoft Outlook, прошедшее через MS-Exchange Server, не отображается с использованием вашего (или моего) кода. Это странно. Я пришлю вам приглашение, чтобы узнать, получили ли вы те же результаты. Я также изучу использование Google Calendar v3 api в скриптах Google Apps, чтобы узнать, могу ли я получить самые последние записи календаря, используя этот api (объекты календаря Google Apps, видимо, не позволяют мне это делать). –

+0

i упомянутый это возможность. я сам пережил всю эту боль :(Иногда приглашения в календаре находятся в многостраничном сообщении, закодированном в base64, - не так много, чтобы найти их. – Jonathon

+0

Итак, я изменил свою стратегию, и теперь я использую Google для разбора приглашений, и я читаю данные, которые мне нужны с помощью API календаря. Все еще очень сложно получить данные так, как мне нужно (например: еще не смогли отсортировать события по последнему отредактированному или созданному), но это прогресс –

Смежные вопросы