Comment recevoir des invitations à des réunions iCalendar (.ics ou .ical) de outlook.office365.com, afin qu'elles puissent être analysées et ajoutées à un calendrier (comme rappel + wyrd)?
J'ai cherché longtemps et durement une réponse, mais je n'en ai pas trouvé, alors je me demande si je manque juste quelque chose de vraiment trivial.
J'utilise Mutt 1.5.22 avec OfflineIMAP 6.5.5 sur Fedora 20 (Heisenbug).
Il existe de nombreux scripts pour analyser les messages iCalendar dans des formats qui peuvent être importés dans des calendriers. Ce n'est pas mon problème. Mon problème est que je ne reçois même pas de messages iCalendar, donc je n'ai rien à analyser.
Une invitation à une réunion arrive dans ma boîte de réception sous forme de message texte / html encodé en base64. Ce n'est pas un message en plusieurs parties et il n'y a pas de pièces jointes . Le corps du message contient un lien vers Microsoft Outlook Web Access (OWA). Suivre le lien ne semble rien faire sauf me conduire sur WebMail. Le reste du corps de l'e-mail contient la description de l'invitation à la réunion.
J'ai essayé de transmettre l'invitation et de transférer l'invitation en tant que pièce jointe, mais aucun de ces éléments n'a affecté le format du message.
J'ai inspecté les en-têtes du message, mais rien ne ressortait comme étant important. Je les ai copiés ici, au cas où ils signifieraient quelque chose pour quelqu'un:
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
J'ai également inspecté les en-têtes du message dans WebMail. Il y avait plus d'en-têtes (certains liés à tnef), mais encore une fois, rien ne semblait lié aux calendriers ou aux invitations.
J'ai comparé les en-têtes d'une "invitation à une réunion" avec les en-têtes d'un e-mail normal. La seule différence était qu'un e-mail normal contient un en-tête supplémentaire: "X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoRponse".
Le filtre de dossier de mon .offlineimaprc est configuré pour ne pas synchroniser le dossier Calendrier. En effet, chaque fois que OfflineIMAP tentait de se synchroniser, il se produisait dans plus d'une centaine d'instances de la même erreur lors de la synchronisation du dossier Calendrier: "ERREUR: le serveur IMAP 'distant' n'a pas de message avec l'UID '[...]' . "
Utilisation de l'imaplib de Python pour inspecter le dossier Calendrier:
>>> import imaplib
>>> i = imaplib.IMAP4_SSL("outlook.office365.com", 993)
>>> i.login("[email protected]", "PASSWORD")
('OK', ['LOGIN completed.'])
>>> i.select("Calendar")
('OK', ['159'])
>>> i.fetch(159, "(RFC822)")
('OK', [None])
>>> i.fetch(159, "(RFC822)")
La deuxième fois que j'appelle chercher, il renvoie un message: "Le serveur n'a pas pu récupérer le message suivant. Le message n'a pas été supprimé. Vous pourrez peut-être l'afficher à l'aide d'Outlook ou d'Outlook Web App. Vous pouvez également contacter l'expéditeur pour savoir ce que dit le message. "
Dans WebMail, je constate que le dossier Calendrier (accessible via l'onglet Calendrier) dispose d'autorisations de visibilité en dehors de l'organisation . Il est actuellement défini sur "Non partagé". Les autres options sont "Disponibilité uniquement", "Détails limités" ou "Détails complets". Définir les autorisations sur "Détails complets", puis m'envoyer une invitation à une réunion n'a eu aucun effet sur le format de l'invitation à la réunion.
Comme solution de contournement pour ne pas recevoir de message iCalendar, j'ai Thunderbird ouvert avec le module complémentaire Lightning. D'une manière ou d'une autre, le module complémentaire Lightning sait comment recevoir des invitations à des réunions. Les messages apparaissent toujours sous forme de texte / html, mais il y a un lien dans la barre d'état de Thunderbird. En cliquant dessus, une invite vous demande si vous souhaitez refuser ou accepter l'invitation.
Quelqu'un a-t-il une idée de la raison pour laquelle les invitations à des réunions d'Outlook 365 arrivent sous la forme de simples messages texte / html plutôt que de messages iCalendar? Y a-t'il quelque chose que je puisse faire? Si le module complémentaire Lightning peut fonctionner avec les invitations, il doit y avoir une solution, telle que l'utilisation des services Web Microsoft Exchange (EWS). Si la solution me demande de coder un outil, tant pis. Un effort dans la bonne direction serait grandement apprécié.
Réponses:
Vous pouvez le configurer pour qu'Office 365 / Outlook envoie des invitations formatées au format iCalendar via l'interface Web.
Vous devriez maintenant recevoir toutes les invitations au format iCalendar.
la source
Le lien fourni par SEoF était une excellente suggestion. Le blog est incomplet, à mon avis, mais il m'a permis de commencer sur la bonne voie. J'ai creusé un peu plus et j'ai trouvé une liste complète des étapes pour que Office 365 m'envoie des invitations à des réunions au format iCalendar (.ics).
Notez que je ne suis pas administrateur et que je n'ai eu besoin de contacter personne pour me donner des privilèges. La seule mise en garde est que vous devez avoir accès à une boîte Windows. Une fois que vous avez modifié les paramètres via Windows, vous pouvez recommencer à utiliser le système d'exploitation que vous utilisiez auparavant. J'ai fait ce qui suit par moi-même en tant qu'utilisateur normal avec Windows 7:
Maintenant, mon mutt sur Linux récupère les invitations aux réunions au format iCalendar (.ics).
la source
Pas exactement ce qu'OP a demandé, mais si la logique tierce est autorisée, alors consultez le fantastique échange (python). Exemple rapide py3 de récupération d'événements pour les 3 prochains mois (notez que les éléments récurrents ont été étendus):
la source