Як отримувати запрошення на зустріч iCalendar (.ics або .ical) від outlook.office365.com, щоб їх можна було розібрати і додати до календаря (наприклад, нагадування + wyrd)?
Я довго і наполегливо шукав відповідь, але не знайшов жодної, тому мені цікаво, чи просто я пропускаю щось справді тривіальне.
Я використовую Mutt 1.5.22 з OfflineIMAP 6.5.5 на Fedora 20 (Heisenbug).
Існує багато сценаріїв для розбору повідомлень iCalendar у формати, які можна імпортувати в календарі. Це не моя проблема. Моя проблема полягає в тому, що я навіть не отримую повідомлень iCalendar, тому мені немає чого розбирати.
Запрошення на зустріч надходить до моєї скриньки у вигляді закодованого тексту / html-повідомлення base64. Це не багаточастинне повідомлення і немає вкладених файлів . Основна частина повідомлення містить посилання на веб-доступ до Microsoft Outlook (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-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply".
У папці фільтра .offlineimaprc папка не синхронізується з папкою Календар. Це тому, що кожного разу, коли OfflineIMAP намагався синхронізувати, під час синхронізації папки календаря зіткнеться понад сто екземплярів однієї і тієї ж помилки: "ПОМИЛКА:" віддалений "сервер IMAP не містить повідомлення з UID '[...]' . "
Використання зображень 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)")
Другий раз, коли я закликаю отримати, він повертає повідомлення: "Сервер не міг отримати таке повідомлення. Повідомлення не було видалено. Ви можете переглянути його за допомогою Outlook або Outlook Web App. Ви також можете зв’язатися відправник, щоб дізнатися, що йдеться у повідомленні. "
У WebMail я бачу, що папка Календар (доступна через вкладку Календар) має дозволи для видимості поза організацією . Наразі встановлено значення "Не поділяється". Інші параметри - "Лише доступність", "Обмежена інформація" або "Повна інформація". Визначення дозволів на "Повна інформація" та потім надсилання запрошення на зустріч не вплинуло на формат запрошення на зустріч.
Як вирішення проблеми щодо отримання повідомлення iCalendar, я відкрив Thunderbird із додатком Lightning. Так чи інакше, додаток «Блискавка» знає, як отримувати запрошення на зустріч. Повідомлення все ще відображаються як текст / html, але в рядку стану Thunderbird є посилання. Натиснувши на нього, відкриється підказка із запитом відмовити чи прийняти запрошення.
У когось є ідеї, чому запрошення на зустріч із Outlook 365 надходять як прості текстові / html-повідомлення, а не повідомлення iCalendar? Чи можна щось зробити? Якщо надбудова Lightning може працювати з запрошеннями, тоді повинно бути рішення, наприклад використання веб-служб Microsoft Exchange (EWS). Якщо рішення вимагатиме від мене кодування інструменту, так і буде. Поштовх у правильному напрямку буде дуже вдячний.