outlook.office365.com에서 iCalendar (.ics 또는 .ical) 미팅 초대장을 수신하여 파싱하고 캘린더 (예 : remind + wyrd)에 추가 할 수있는 방법은 무엇입니까?
나는 답을 찾기 위해 오랫동안 열심히 노력했지만 아무것도 찾지 못했습니다. 그래서 정말 사소한 것을 놓치고 있는지 궁금합니다.
Fedora 20 (Heisenbug)에서 OfflineIMAP 6.5.5와 함께 Mutt 1.5.22를 사용하고 있습니다.
캘린더로 가져올 수있는 형식으로 iCalendar 메시지를 구문 분석하기위한 많은 스크립트가 있습니다. 이것은 내 문제 가 아니다 . 내 문제는 iCalendar 메시지를받지 못해 구문 분석 할 것이 없다는 것입니다.
받은 편지함에 base64로 인코딩 된 텍스트 / html 메시지로 모임 초대가 도착합니다. 그것은 것입니다 하지 멀티 파트 메시지가없는 첨부 파일은 . 메시지 본문에는 Microsoft Outlook Web Access (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이 동기화를 시도 할 때마다 일정 폴더를 동기화 할 때 동일한 오류가 100 개가 넘는 인스턴스에서 실행되기 때문입니다. "오류 : IMAP 서버 '원격'에 UID '[...]'가 포함 된 메시지가 없습니다. "
Python의 imaplib을 사용하여 Calendar 폴더를 검사합니다.
>>> 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 메시지를받지 못하는 문제를 해결하기 위해 Lightning 추가 기능으로 Thunderbird를 열었습니다. 어쨌든 Lightning 애드온은 모임 초대를받는 방법을 알고 있습니다. 메시지는 여전히 텍스트 / html로 표시되지만 Thunderbird의 상태 표시 줄에 링크가 있습니다. 클릭하면 초대를 거부할지 또는 수락할지 묻는 프롬프트가 열립니다.
Outlook 365의 초대가 iCalendar 메시지가 아닌 단순한 문자 / html 메시지로 도착하는 이유를 아는 사람이 있습니까? 제가 뭔가할만한 일이 있을까요? Lightning 애드온이 초대와 함께 작동 할 수 있으면 Microsoft Exchange 웹 서비스 (EWS) 사용과 같은 솔루션이 있어야합니다. 솔루션에서 도구를 코딩해야한다면 그렇게해야합니다. 올바른 방향으로의 추진은 크게 감사하겠습니다.