Bagaimana cara menerima undangan rapat iCalendar (.ics atau .ical) dari outlook.office365.com, sehingga dapat diuraikan dan ditambahkan ke kalender (seperti mengingatkan + wyrd)?
Saya telah mencari jawaban yang panjang dan sulit, tetapi belum menemukan jawaban, jadi saya ingin tahu apakah saya melewatkan sesuatu yang sangat sepele.
Saya menggunakan Mutt 1.5.22 dengan OfflineIMAP 6.5.5 di Fedora 20 (Heisenbug).
Ada banyak skrip di luar sana untuk mem-parsing pesan iCalendar ke format yang dapat diimpor ke kalender. Ini bukan masalah saya. Masalah saya adalah bahwa saya bahkan tidak menerima pesan iCalendar, jadi saya tidak punya apa-apa untuk diuraikan.
Undangan rapat tiba di kotak masuk saya sebagai pesan teks / html yang disandikan base64. Ini bukan pesan multi bagian dan tidak ada lampiran . Isi pesan berisi tautan ke Microsoft Outlook Web Access (OWA). Mengikuti tautan tampaknya tidak melakukan apa-apa selain membawa saya ke WebMail. Sisa badan email berisi deskripsi undangan rapat.
Saya mencoba meneruskan undangan dan meneruskan undangan sebagai lampiran, tetapi tidak satu pun yang memengaruhi format pesan.
Saya memeriksa tajuk pesan, tetapi tidak ada yang penting. Saya sudah menyalinnya di sini, kalau-kalau ada artinya bagi siapa pun:
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
Saya juga memeriksa header pesan di WebMail. Ada lebih banyak tajuk (beberapa terkait dengan tnef), tetapi sekali lagi, tampaknya tidak ada yang terkait dengan kalender atau undangan.
Saya membandingkan tajuk "undangan rapat" dengan tajuk email biasa. Satu-satunya perbedaan adalah bahwa email normal berisi tajuk tambahan: "X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply".
Folderfilter .offlineimaprc saya diatur untuk tidak menyinkronkan folder Kalender. Ini karena setiap kali OfflineIMAP mencoba menyinkronkan, itu akan mengalami lebih dari seratus contoh kesalahan yang sama ketika menyinkronkan folder Kalender: "ERROR: Server IMAP 'remote' tidak memiliki pesan dengan UID '[...]' . "
Menggunakan imaplib Python untuk memeriksa folder Kalender:
>>> 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)")
Saat saya memanggil fetch yang kedua, ia akan mengirim pesan: "Server tidak dapat mengambil pesan berikut. Pesannya belum dihapus. Anda mungkin dapat melihatnya menggunakan Outlook atau Outlook Web App. Anda juga dapat menghubungi pengirim untuk mengetahui apa yang dikatakan pesan. "
Di WebMail, saya melihat bahwa folder Kalender (dapat diakses melalui tab Kalender) memiliki izin untuk visibilitas di luar organisasi . Saat ini diatur ke "Tidak dibagikan". Pilihan lain adalah "Hanya ketersediaan", "Rincian terbatas", atau "Rincian lengkap". Menetapkan izin untuk "Detail lengkap" dan kemudian mengirim undangan rapat ke saya sendiri tidak berpengaruh pada format undangan rapat.
Sebagai solusi untuk tidak menerima pesan iCalendar, saya telah membuka Thunderbird dengan add-on Lightning. Entah bagaimana, add-on Lightning tahu cara menerima undangan rapat. Pesan masih muncul sebagai teks / html, tetapi ada tautan di bilah status Thunderbird. Mengkliknya akan membuka prompt yang menanyakan apakah akan menolak atau menerima undangan.
Adakah yang tahu mengapa undangan rapat dari Outlook 365 datang sebagai pesan teks / html sederhana dan bukan pesan iCalendar? Apakah ada sesuatu yang saya bisa lakukan? Jika add-on Lightning dapat berfungsi dengan undangan, maka harus ada solusi, seperti menggunakan Microsoft Exchange Web Services (EWS). Jika solusinya akan meminta saya untuk membuat kode alat, biarlah. Dorongan ke arah yang benar akan sangat dihargai.
Jawaban:
Anda bisa mengaturnya sehingga Office 365 / Outlook mengirim undangan yang diformat dalam format iCalendar melalui antarmuka web.
Anda sekarang harus mendapatkan semua undangan dalam format iCalendar.
sumber
Tautan yang disediakan SEoF adalah saran yang bagus. Posting blog tidak lengkap, menurut saya, tetapi itu membuat saya mulai di jalur yang benar. Saya melakukan lebih banyak penggalian dan menghasilkan daftar lengkap langkah-langkah untuk mendapatkan Office 365 untuk mengirimi saya undangan rapat dalam format iCalendar (.ics).
Perhatikan bahwa saya bukan administrator dan saya tidak perlu menghubungi siapa pun untuk memberi saya hak istimewa. Satu-satunya peringatan adalah bahwa Anda memerlukan akses ke kotak Windows. Setelah Anda mengubah pengaturan melalui Windows, Anda dapat kembali menggunakan OS apa pun yang Anda gunakan sebelumnya. Saya melakukan yang berikut ini sendiri sebagai pengguna normal menggunakan Windows 7:
Sekarang, mutt saya di Linux sedang mengambil undangan rapat dalam format iCalendar (.ics).
sumber
Tidak persis apa yang diminta OP, tetapi jika logika pihak ke-3 diizinkan, maka periksa exchangeelib (python) yang fantastis. Contoh py3 cepat untuk mengambil acara selama 3 bulan ke depan (perhatikan bahwa item berulang telah diperpanjang):
sumber