Как получать приглашения на собрания iCalendar (.ics или .ical) от outlook.office365.com, чтобы их можно было проанализировать и добавить в календарь (например, remind + wyrd)?
Я искал долго и упорно для ответа, но не нашел ни одного, поэтому мне интересно, если я просто отсутствует что-то на самом деле тривиальное.
Я использую Mutt 1.5.22 с OfflineIMAP 6.5.5 на Fedora 20 (Heisenbug).
Существует множество сценариев для анализа сообщений iCalendar в форматы, которые можно импортировать в календари. Это не моя проблема. Моя проблема в том, что я даже не получаю сообщения iCalendar, поэтому мне нечего анализировать.
Приглашение на встречу приходит в мой почтовый ящик как текстовое / HTML-сообщение в кодировке base64. Это не составное сообщение, и в нем нет вложений . Тело сообщения содержит ссылку на Microsoft Outlook Web Access (OWA). Переход по ссылке, похоже, ничего не делает, кроме как перевести меня в WebMail. Оставшаяся часть письма содержит описание приглашения на встречу.
Я попытался переслать приглашение и переслать его как вложение, но ни один из них не повлиял на формат сообщения.
Я проверил заголовки сообщения, но ничто не выделялось как важное. Я скопировал их здесь, на случай, если они кому-нибудь что-то значат:
Received: from [...] by [...] with Microsoft SMTP Server (TLS) id
[...] via Mailbox Transport; [timestamp]
Received: from [...] by [...] with Microsoft SMTP Server (TLS) id
[...]; [timestamp]
Received: from [...] by [...] with Microsoft SMTP Server (TLS) id
[...]; [timestamp]
Received: from [...] by [...] with mapi id [...]; [timestamp]
From: [meeting organiser]
To: [meeting attendees]
Subject: [meeting subject]
Thread-Topic: [meeting subject]
Thread-Index: [...]
Sender: [sender on behalf of meeting organiser]
Date: [timestamp]
Message-ID: <[...]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 03
X-MS-Exchange-Organization-AuthSource: [...]
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Я также проверил заголовки сообщения в WebMail. Заголовков было больше (некоторые имели отношение к tnef), но опять же, казалось, ничего не было связано с календарями или приглашениями.
Я сравнил заголовки «приглашения на встречу» с заголовками обычной электронной почты. Единственное отличие заключалось в том, что обычное письмо содержит дополнительный заголовок: «Подавление автоответчика X: DR, RN, NRN, OOF, AutoReply».
Фильтр папок моего .offlineimaprc не синхронизирует папку Календаря. Это связано с тем, что каждый раз, когда OfflineIMAP пытался выполнить синхронизацию, при синхронизации папки «Календарь» он сталкивался с более чем сотней экземпляров одной и той же ошибки: «ОШИБКА: IMAP-сервер« удаленный »не имеет сообщения с UID« [...] » «.
Использование imaplib Python для проверки папки «Календарь»:
>>> import imaplib
>>> i = imaplib.IMAP4_SSL("outlook.office365.com", 993)
>>> i.login("NAME@COMPANY.com", "PASSWORD")
('OK', ['LOGIN completed.'])
>>> i.select("Calendar")
('OK', ['159'])
>>> i.fetch(159, "(RFC822)")
('OK', [None])
>>> i.fetch(159, "(RFC822)")
Во второй раз, когда я вызываю fetch, он возвращает сообщение: «Серверу не удалось получить следующее сообщение. Сообщение не было удалено. Возможно, вы сможете просмотреть его с помощью Outlook или Outlook Web App. Вы также можете связаться с отправитель, чтобы узнать, что говорится в сообщении ".
В WebMail я вижу, что папка «Календарь» (доступная через вкладку «Календарь») имеет разрешения для видимости вне организации . В настоящее время установлено значение «Не распространено». Другие варианты: «Доступность только», «Ограниченные данные» или «Полная информация». Установка разрешений для «Полные данные» и последующая отправка приглашения на собрание не повлияла на формат приглашения на собрание.
В качестве обходного пути для получения сообщения iCalendar у меня открыт Thunderbird с надстройкой Lightning. Каким-то образом дополнение Lightning знает, как получать приглашения на встречи. Сообщения по-прежнему отображаются в виде text / html, но в строке состояния Thunderbird есть ссылка. Нажатие на нее открывает приглашение с предложением отклонить или принять приглашение.
У кого-нибудь есть идеи, почему приглашения на собрания из Outlook 365 приходят в виде простых текстовых / HTML-сообщений, а не сообщений iCalendar? Что я могу сделать? Если надстройка Lightning может работать с приглашениями, то должно быть решение, например использование веб-служб Microsoft Exchange (EWS). Если решение потребует от меня написания инструмента, пусть будет так. Толчок в правильном направлении будет принята с благодарностью.