Wie erhalte ich Einladungen zu iCalendar-Besprechungen (.ics oder .ical) von Outlook.office365.com, damit sie analysiert und einem Kalender hinzugefügt werden können (z. B. erinnern + wyrd)?
Ich habe lange und intensiv nach einer Antwort gesucht, aber keine gefunden. Ich frage mich, ob mir nur etwas wirklich Triviales fehlt.
Ich verwende Mutt 1.5.22 mit OfflineIMAP 6.5.5 unter Fedora 20 (Heisenbug).
Es gibt viele Skripte zum Parsen von iCalendar-Nachrichten in Formate, die in Kalender importiert werden können. Das ist nicht mein Problem. Mein Problem ist, dass ich nicht einmal iCalendar-Nachrichten erhalte, sodass ich nichts zu analysieren habe.
Eine Besprechungseinladung kommt als base64-codierte Text- / HTML-Nachricht in meinem Posteingang an. Es ist keine mehrteilige Nachricht und es gibt keine Anhänge . Der Nachrichtentext enthält einen Link zu Microsoft Outlook Web Access (OWA). Das Folgen des Links scheint nichts anderes zu tun, als mich zu WebMail zu bringen. Der Rest des E-Mail-Textes enthält die Beschreibung der Besprechungseinladung.
Ich habe versucht, die Einladung weiterzuleiten und die Einladung als Anhang weiterzuleiten, aber keines davon hat das Format der Nachricht beeinflusst.
Ich habe die Überschriften der Nachricht überprüft, aber nichts war wichtig. Ich habe sie hier kopiert, falls sie jemandem etwas bedeuten:
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
Ich habe auch die Header der Nachricht in WebMail überprüft. Es gab mehr Überschriften (einige bezogen sich auf tnef), aber auch hier schien nichts mit Kalendern oder Einladungen zu tun zu haben.
Ich habe die Überschriften einer "Besprechungseinladung" mit den Überschriften einer normalen E-Mail verglichen. Der einzige Unterschied bestand darin, dass eine normale E-Mail einen zusätzlichen Header enthält: "X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply".
Der Ordnerfilter von .offlineimaprc ist so eingestellt, dass der Kalenderordner nicht synchronisiert wird. Dies liegt daran, dass jedes Mal, wenn OfflineIMAP versucht hat, eine Synchronisierung durchzuführen, beim Synchronisieren des Kalenderordners mehr als hundert Instanzen desselben Fehlers auftreten: "FEHLER: IMAP-Server 'remote' hat keine Nachricht mit der UID '[...]' . "
Verwenden von Pythons imaplib zum Überprüfen des Kalenderordners:
>>> 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)")
Wenn ich zum zweiten Mal fetch aufrufe, wird eine Nachricht zurückgegeben: "Der Server konnte die folgende Nachricht nicht abrufen. Die Nachricht wurde nicht gelöscht. Möglicherweise können Sie sie entweder mit Outlook oder Outlook Web App anzeigen. Sie können auch Kontakt aufnehmen der Absender, um herauszufinden, was die Nachricht sagt. "
In WebMail sehe ich, dass der Kalenderordner (über die Registerkarte Kalender zugänglich) über Berechtigungen für die Sichtbarkeit außerhalb der Organisation verfügt . Es ist derzeit auf "Nicht freigegeben" eingestellt. Andere Optionen sind "Nur Verfügbarkeit", "Eingeschränkte Details" oder "Vollständige Details". Das Festlegen der Berechtigungen auf "Vollständige Details" und das anschließende Senden einer Besprechungseinladung an mich selbst hatte keine Auswirkungen auf das Format der Besprechungseinladung.
Um dieses Problem zu umgehen, wenn keine iCalendar-Nachricht empfangen wird, ist Thunderbird mit dem Lightning-Add-On geöffnet. Irgendwie weiß das Lightning-Add-On, wie man Besprechungseinladungen empfängt. Die Nachrichten werden weiterhin als Text / HTML angezeigt, aber in der Statusleiste von Thunderbird befindet sich ein Link. Wenn Sie darauf klicken, werden Sie gefragt, ob Sie die Einladung ablehnen oder annehmen möchten.
Hat jemand eine Idee, warum Besprechungseinladungen aus Outlook 365 als einfache Text- / HTML-Nachrichten und nicht als iCalendar-Nachrichten ankommen? Kann ich irgendetwas tun? Wenn das Lightning-Add-On mit den Einladungen arbeiten kann, muss es eine Lösung geben, z. B. die Verwendung von Microsoft Exchange Web Services (EWS). Wenn ich für die Lösung ein Tool codieren muss, soll es so sein. Ein Vorstoß in die richtige Richtung wäre sehr dankbar.