¿Cómo recibir invitaciones a reuniones de iCalendar (.ics o .ical) de outlook.office365.com, para que puedan analizarse y agregarse a un calendario (como remind + wyrd)?
He buscado larga y duramente una respuesta, pero no he encontrado ninguna, así que me pregunto si me estoy perdiendo algo realmente trivial.
Estoy usando Mutt 1.5.22 con OfflineIMAP 6.5.5 en Fedora 20 (Heisenbug).
Existen muchos scripts para analizar los mensajes de iCalendar en formatos que se pueden importar a los calendarios. Este no es mi problema. Mi problema es que ni siquiera estoy recibiendo mensajes de iCalendar, así que no tengo nada que analizar.
Una invitación a la reunión llega a mi bandeja de entrada como mensaje de texto / html codificado en base64. Es no un mensaje de varias partes y hay no hay archivos adjuntos . El cuerpo del mensaje contiene un enlace a Microsoft Outlook Web Access (OWA). Seguir el enlace no parece hacer nada excepto llevarme a WebMail. El resto del cuerpo del correo electrónico contiene la descripción de la invitación a la reunión.
Intenté reenviar la invitación y reenviar la invitación como un archivo adjunto, pero ninguno de estos afectó el formato del mensaje.
Inspeccioné los encabezados del mensaje, pero nada se destacó como importante. Los he copiado aquí, en caso de que signifiquen algo para alguien:
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
También inspeccioné los encabezados del mensaje en WebMail. Hubo más encabezados (algunos relacionados con tnef), pero nuevamente, nada parecía relacionado con calendarios o invitaciones.
Comparé los encabezados de una "invitación a una reunión" con los encabezados de un correo electrónico normal. La única diferencia era que un correo electrónico normal contiene un encabezado adicional: "X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply".
El filtro de carpeta de mi .offlineimaprc está configurado para no sincronizar la carpeta Calendario. Esto se debe a que cada vez que OfflineIMAP intenta sincronizar, se encuentra con más de cien instancias del mismo error al sincronizar la carpeta Calendario: "ERROR: el servidor IMAP 'remoto' no tiene un mensaje con UID '[...]' ".
Usando imaplib de Python para inspeccionar la carpeta Calendario:
>>> 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 segunda vez que llamo a fetch, devuelve un mensaje: "El servidor no pudo recuperar el siguiente mensaje. El mensaje no se ha eliminado. Puede verlo con Outlook o Outlook Web App. También puede contactar el remitente para averiguar lo que dice el mensaje ".
En WebMail, veo que la carpeta Calendario (accesible a través de la pestaña Calendario) tiene permisos para visibilidad fuera de la organización . Actualmente está configurado en "No compartido". Otras opciones son "Solo disponibilidad", "Detalles limitados" o "Detalles completos". Establecer los permisos en "Detalles completos" y luego enviarme una invitación a la reunión no tuvo ningún efecto en el formato de la invitación a la reunión.
Como solución para no recibir el mensaje iCalendar, tengo Thunderbird abierto con el complemento Lightning. De alguna manera, el complemento Lightning sabe cómo recibir invitaciones a reuniones. Los mensajes aún aparecen como texto / html, pero hay un enlace en la barra de estado de Thunderbird. Al hacer clic, se abre un mensaje que le pregunta si rechaza o acepta la invitación.
¿Alguien tiene alguna idea de por qué las invitaciones a reuniones de Outlook 365 llegan como simples mensajes de texto / html en lugar de mensajes iCalendar? ¿Hay algo que pueda hacer? Si el complemento Lightning puede funcionar con las invitaciones, entonces debe haber una solución, como usar los Servicios web de Microsoft Exchange (EWS). Si la solución requiere que codifique una herramienta, que así sea. Un empujón en la dirección correcta sería muy apreciado.
Respuestas:
Puede configurarlo para que Office 365 / Outlook envíe invitaciones formateadas en formato iCalendar a través de la interfaz web.
Ahora debería recibir todas las invitaciones en el formato iCalendar.
fuente
El enlace que SEoF proporcionó fue una gran sugerencia. La publicación del blog está incompleta, en mi opinión, pero me ayudó a comenzar por el camino correcto. Investigué un poco más y obtuve una lista completa de pasos para que Office 365 me enviara invitaciones a reuniones en formato iCalendar (.ics).
Tenga en cuenta que no soy administrador y que no necesitaba contactar a nadie para otorgarme ningún privilegio. La única advertencia es que necesita acceso a un cuadro de Windows. Una vez que cambie la configuración a través de Windows, puede volver a utilizar el sistema operativo que estaba utilizando antes. Hice lo siguiente por mi cuenta como usuario normal con Windows 7:
Ahora, mi mutt en Linux está recuperando invitaciones a reuniones en formato iCalendar (.ics).
fuente
No es exactamente lo que solicitó OP, pero si se permite la lógica de terceros, entonces compruebe el exchangelib fantástico (python). Ejemplo rápido de py3 de recuperación de eventos para los próximos 3 meses (tenga en cuenta que los elementos recurrentes se han extendido):
fuente