<table><tr><td style="">nowicki created this revision.<br />Restricted Application added a project: KDE PIM.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7775" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This change adds the Akonadi EWS resource, which allows connecting to a Microsoft Exchange mailbox using the Exchange Web Services (EWS) protocol. The resource has been developed on <a href="https://github.com/KrissN/akonadi-ews" class="remarkup-link" target="_blank" rel="noreferrer">GitHub</a>. In its current state it is able to:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Send and receive e-mail</li>
<li class="remarkup-list-item">Provide read-only access to the calendar (with some known issues related to timezone conversion).</li>
<li class="remarkup-list-item">Provide read-only access to the personal address book.</li>
</ul>

<p>From day one I have developed this resource with future inclusion into KDE in mind, however the original idea was to have it more feature complete before that. Given the demand for a working Exchange solution I have decided to make an attempt to submit it now in hope to be able to gain more traction.</p>

<p>The submitted code is a flat copy of the latest GitHub master with necessary integration changes. Full history (including the adaptation changes) can be examined on the <a href="https://github.com/KrissN/akonadi-ews/tree/for-kdepim-runtime" class="remarkup-link" target="_blank" rel="noreferrer">for-kdepim-runtime</a> branch.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R44 KDE PIM Runtime</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7775" rel="noreferrer">https://phabricator.kde.org/D7775</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>resources/CMakeLists.txt<br />
resources/ews/CHANGELOG<br />
resources/ews/CMakeLists.txt<br />
resources/ews/README.md<br />
resources/ews/abchperson/ewsabchpersonhandler.cpp<br />
resources/ews/abchperson/ewsabchpersonhandler.h<br />
resources/ews/abchperson/ewscreateabchpersonjob.cpp<br />
resources/ews/abchperson/ewscreateabchpersonjob.h<br />
resources/ews/abchperson/ewsfetchabchpersondetailjob.cpp<br />
resources/ews/abchperson/ewsfetchabchpersondetailjob.h<br />
resources/ews/abchperson/ewsmodifyabchpersonjob.cpp<br />
resources/ews/abchperson/ewsmodifyabchpersonjob.h<br />
resources/ews/calendar/ewscalendarhandler.cpp<br />
resources/ews/calendar/ewscalendarhandler.h<br />
resources/ews/calendar/ewscreatecalendarjob.cpp<br />
resources/ews/calendar/ewscreatecalendarjob.h<br />
resources/ews/calendar/ewsfetchcalendardetailjob.cpp<br />
resources/ews/calendar/ewsfetchcalendardetailjob.h<br />
resources/ews/calendar/ewsmodifycalendarjob.cpp<br />
resources/ews/calendar/ewsmodifycalendarjob.h<br />
resources/ews/config.h.cmake<br />
resources/ews/configdialog.cpp<br />
resources/ews/configdialog.h<br />
resources/ews/configdialog.ui<br />
resources/ews/contact/ewscontacthandler.cpp<br />
resources/ews/contact/ewscontacthandler.h<br />
resources/ews/contact/ewscreatecontactjob.cpp<br />
resources/ews/contact/ewscreatecontactjob.h<br />
resources/ews/contact/ewsfetchcontactdetailjob.cpp<br />
resources/ews/contact/ewsfetchcontactdetailjob.h<br />
resources/ews/contact/ewsmodifycontactjob.cpp<br />
resources/ews/contact/ewsmodifycontactjob.h<br />
resources/ews/ewsautodiscoveryjob.cpp<br />
resources/ews/ewsautodiscoveryjob.h<br />
resources/ews/ewsclient/CMakeLists.txt<br />
resources/ews/ewsclient/ewsattachment.cpp<br />
resources/ews/ewsclient/ewsattachment.h<br />
resources/ews/ewsclient/ewsattendee.cpp<br />
resources/ews/ewsclient/ewsattendee.h<br />
resources/ews/ewsclient/ewsclient.cpp<br />
resources/ews/ewsclient/ewsclient.h<br />
resources/ews/ewsclient/ewsclient_debug.cpp<br />
resources/ews/ewsclient/ewsclient_debug.h<br />
resources/ews/ewsclient/ewscreatefolderrequest.cpp<br />
resources/ews/ewsclient/ewscreatefolderrequest.h<br />
resources/ews/ewsclient/ewscreateitemrequest.cpp<br />
resources/ews/ewsclient/ewscreateitemrequest.h<br />
resources/ews/ewsclient/ewsdeletefolderrequest.cpp<br />
resources/ews/ewsclient/ewsdeletefolderrequest.h<br />
resources/ews/ewsclient/ewsdeleteitemrequest.cpp<br />
resources/ews/ewsclient/ewsdeleteitemrequest.h<br />
resources/ews/ewsclient/ewseffectiverights.cpp<br />
resources/ews/ewsclient/ewseffectiverights.h<br />
resources/ews/ewsclient/ewseventrequestbase.cpp<br />
resources/ews/ewsclient/ewseventrequestbase.h<br />
resources/ews/ewsclient/ewsfindfolderrequest.cpp<br />
resources/ews/ewsclient/ewsfindfolderrequest.h<br />
resources/ews/ewsclient/ewsfinditemrequest.cpp<br />
resources/ews/ewsclient/ewsfinditemrequest.h<br />
resources/ews/ewsclient/ewsfolder.cpp<br />
resources/ews/ewsclient/ewsfolder.h<br />
resources/ews/ewsclient/ewsfoldershape.cpp<br />
resources/ews/ewsclient/ewsfoldershape.h<br />
resources/ews/ewsclient/ewsgeteventsrequest.cpp<br />
resources/ews/ewsclient/ewsgeteventsrequest.h<br />
resources/ews/ewsclient/ewsgetfolderrequest.cpp<br />
resources/ews/ewsclient/ewsgetfolderrequest.h<br />
resources/ews/ewsclient/ewsgetitemrequest.cpp<br />
resources/ews/ewsclient/ewsgetitemrequest.h<br />
resources/ews/ewsclient/ewsgetstreamingeventsrequest.cpp<br />
resources/ews/ewsclient/ewsgetstreamingeventsrequest.h<br />
resources/ews/ewsclient/ewsid.cpp<br />
resources/ews/ewsclient/ewsid.h<br />
resources/ews/ewsclient/ewsitem.cpp<br />
resources/ews/ewsclient/ewsitem.h<br />
resources/ews/ewsclient/ewsitembase.cpp<br />
resources/ews/ewsclient/ewsitembase.h<br />
resources/ews/ewsclient/ewsitembase_p.h<br />
resources/ews/ewsclient/ewsitemshape.cpp<br />
resources/ews/ewsclient/ewsitemshape.h<br />
resources/ews/ewsclient/ewsjob.cpp<br />
resources/ews/ewsclient/ewsjob.h<br />
resources/ews/ewsclient/ewsmailbox.cpp<br />
resources/ews/ewsclient/ewsmailbox.h<br />
resources/ews/ewsclient/ewsmovefolderrequest.cpp<br />
resources/ews/ewsclient/ewsmovefolderrequest.h<br />
resources/ews/ewsclient/ewsmoveitemrequest.cpp<br />
resources/ews/ewsclient/ewsmoveitemrequest.h<br />
resources/ews/ewsclient/ewsoccurrence.cpp<br />
resources/ews/ewsclient/ewsoccurrence.h<br />
resources/ews/ewsclient/ewspoxautodiscoverrequest.cpp<br />
resources/ews/ewsclient/ewspoxautodiscoverrequest.h<br />
resources/ews/ewsclient/ewspropertyfield.cpp<br />
resources/ews/ewsclient/ewspropertyfield.h<br />
resources/ews/ewsclient/ewsrecurrence.cpp<br />
resources/ews/ewsclient/ewsrecurrence.h<br />
resources/ews/ewsclient/ewsrequest.cpp<br />
resources/ews/ewsclient/ewsrequest.h<br />
resources/ews/ewsclient/ewsserverversion.cpp<br />
resources/ews/ewsclient/ewsserverversion.h<br />
resources/ews/ewsclient/ewssubscriberequest.cpp<br />
resources/ews/ewsclient/ewssubscriberequest.h<br />
resources/ews/ewsclient/ewssyncfolderhierarchyrequest.cpp<br />
resources/ews/ewsclient/ewssyncfolderhierarchyrequest.h<br />
resources/ews/ewsclient/ewssyncfolderitemsrequest.cpp<br />
resources/ews/ewsclient/ewssyncfolderitemsrequest.h<br />
resources/ews/ewsclient/ewstypes.cpp<br />
resources/ews/ewsclient/ewstypes.h<br />
resources/ews/ewsclient/ewsunsubscriberequest.cpp<br />
resources/ews/ewsclient/ewsunsubscriberequest.h<br />
resources/ews/ewsclient/ewsupdatefolderrequest.cpp<br />
resources/ews/ewsclient/ewsupdatefolderrequest.h<br />
resources/ews/ewsclient/ewsupdateitemrequest.cpp<br />
resources/ews/ewsclient/ewsupdateitemrequest.h<br />
resources/ews/ewsclient/ewsxml.cpp<br />
resources/ews/ewsclient/ewsxml.h<br />
resources/ews/ewscreateitemjob.cpp<br />
resources/ews/ewscreateitemjob.h<br />
resources/ews/ewsfetchfoldersincrjob.cpp<br />
resources/ews/ewsfetchfoldersincrjob.h<br />
resources/ews/ewsfetchfoldersjob.cpp<br />
resources/ews/ewsfetchfoldersjob.h<br />
resources/ews/ewsfetchitemdetailjob.cpp<br />
resources/ews/ewsfetchitemdetailjob.h<br />
resources/ews/ewsfetchitemsjob.cpp<br />
resources/ews/ewsfetchitemsjob.h<br />
resources/ews/ewsitemhandler.cpp<br />
resources/ews/ewsitemhandler.h<br />
resources/ews/ewsmodifyitemflagsjob.cpp<br />
resources/ews/ewsmodifyitemflagsjob.h<br />
resources/ews/ewsmodifyitemjob.cpp<br />
resources/ews/ewsmodifyitemjob.h<br />
resources/ews/ewsmtaresource.cpp<br />
resources/ews/ewsmtaresource.desktop<br />
resources/ews/ewsmtaresource.h<br />
resources/ews/ewsmtaresource.kcfg<br />
resources/ews/ewsresource.cpp<br />
resources/ews/ewsresource.desktop.cmake<br />
resources/ews/ewsresource.h<br />
resources/ews/ewsresource.kcfg<br />
resources/ews/ewsresource_debug.cpp<br />
resources/ews/ewsresource_debug.h<br />
resources/ews/ewssubscribedfoldersjob.cpp<br />
resources/ews/ewssubscribedfoldersjob.h<br />
resources/ews/ewssubscriptionmanager.cpp<br />
resources/ews/ewssubscriptionmanager.h<br />
resources/ews/ewssubscriptionwidget.cpp<br />
resources/ews/ewssubscriptionwidget.h<br />
resources/ews/icons/akonadi-ews-128.png<br />
resources/ews/icons/akonadi-ews-16.png<br />
resources/ews/icons/akonadi-ews-22.png<br />
resources/ews/icons/akonadi-ews-24.png<br />
resources/ews/icons/akonadi-ews-32.png<br />
resources/ews/icons/akonadi-ews-48.png<br />
resources/ews/icons/akonadi-ews-64.png<br />
resources/ews/icons/akonadi-ews-72.png<br />
resources/ews/icons/akonadi-ews-96.png<br />
resources/ews/icons/akonadi-ews.svg<br />
resources/ews/mail/ewscreatemailjob.cpp<br />
resources/ews/mail/ewscreatemailjob.h<br />
resources/ews/mail/ewsfetchmaildetailjob.cpp<br />
resources/ews/mail/ewsfetchmaildetailjob.h<br />
resources/ews/mail/ewsmailhandler.cpp<br />
resources/ews/mail/ewsmailhandler.h<br />
resources/ews/mail/ewsmodifymailjob.cpp<br />
resources/ews/mail/ewsmodifymailjob.h<br />
resources/ews/mtaconfigdialog.cpp<br />
resources/ews/mtaconfigdialog.h<br />
resources/ews/mtaconfigdialog.ui<br />
resources/ews/mtasettings.kcfgc<br />
resources/ews/progressdialog.cpp<br />
resources/ews/progressdialog.h<br />
resources/ews/settings.cpp<br />
resources/ews/settings.h<br />
resources/ews/settingsbase.kcfgc<br />
resources/ews/tags/ewsakonaditagssyncjob.cpp<br />
resources/ews/tags/ewsakonaditagssyncjob.h<br />
resources/ews/tags/ewsglobaltagsreadjob.cpp<br />
resources/ews/tags/ewsglobaltagsreadjob.h<br />
resources/ews/tags/ewsglobaltagswritejob.cpp<br />
resources/ews/tags/ewsglobaltagswritejob.h<br />
resources/ews/tags/ewstagstore.cpp<br />
resources/ews/tags/ewstagstore.h<br />
resources/ews/tags/ewsupdateitemstagsjob.cpp<br />
resources/ews/tags/ewsupdateitemstagsjob.h<br />
resources/ews/task/ewscreatetaskjob.cpp<br />
resources/ews/task/ewscreatetaskjob.h<br />
resources/ews/task/ewsfetchtaskdetailjob.cpp<br />
resources/ews/task/ewsfetchtaskdetailjob.h<br />
resources/ews/task/ewsmodifytaskjob.cpp<br />
resources/ews/task/ewsmodifytaskjob.h<br />
resources/ews/task/ewstaskhandler.cpp<br />
resources/ews/task/ewstaskhandler.h<br />
resources/ews/test/CMakeLists.txt<br />
resources/ews/test/basictest.cpp<br />
resources/ews/test/fakeserver/CMakeLists.txt<br />
resources/ews/test/fakeserver/fakeewsconnection.cpp<br />
resources/ews/test/fakeserver/fakeewsconnection.h<br />
resources/ews/test/fakeserver/fakeewsserver.cpp<br />
resources/ews/test/fakeserver/fakeewsserver.h<br />
resources/ews/test/fakeserver/fakeewsserver_debug.cpp<br />
resources/ews/test/fakeserver/fakeewsserver_debug.h<br />
resources/ews/test/fakeserver/fakeewsserverthread.cpp<br />
resources/ews/test/fakeserver/fakeewsserverthread.h<br />
resources/ews/test/fakeserver/test/CMakeLists.txt<br />
resources/ews/test/fakeserver/test/ewsfakesrv_test.cpp<br />
resources/ews/test/isolatedtestbase.cpp<br />
resources/ews/test/isolatedtestbase.h<br />
resources/ews/test/isolatedtestcommon.qrc<br />
resources/ews/test/resources/getfolder-inbox-msgroot.xq<br />
resources/ews/test/resources/getfolder-specialfolders.xq<br />
resources/ews/test/resources/getfolder-subscribedfolders.xq<br />
resources/ews/test/resources/getfolder-tags.xq<br />
resources/ews/test/resources/subscribe-streaming.xq<br />
resources/ews/test/resources/syncfolderhierarhy-emptystate.xq<br />
resources/ews/test/resources/unsubscribe.xq<br />
resources/ews/test/statemonitor.cpp<br />
resources/ews/test/statemonitor.h<br />
resources/ews/test/testenv/config.xml.cmake<br />
resources/ews/test/testenv/kdehome/share/apps/.keep<br />
resources/ews/test/testenv/kdehome/share/config/akonadi-firstrunrc<br />
resources/ews/test/testenv/kdehome/share/config/kdebugrc<br />
resources/ews/test/testenv/xdgconfig/akonadi/akonadiserverrc<br />
resources/ews/test/testenv/xdglocal/.keep<br />
resources/ews/test/unittests/CMakeLists.txt<br />
resources/ews/test/unittests/ewsattachment_ut.cpp<br />
resources/ews/test/unittests/ewsdeleteitemrequest_ut.cpp<br />
resources/ews/test/unittests/ewsgetitemrequest_ut.cpp<br />
resources/ews/test/unittests/ewsmoveitemrequest_ut.cpp<br />
resources/ews/test/unittests/ewsunsubscriberequest_ut.cpp<br />
resources/ews/test/unittests/fakehttppost.h<br />
resources/ews/test/unittests/faketransferjob.cpp<br />
resources/ews/test/unittests/faketransferjob.h</div></div></div><br /><div><strong>To: </strong>nowicki, KDE PIM, dvratil, mlaurent<br /><strong>Cc: </strong>kde-pim, dvasin, winterz, vkrause, mlaurent, knauss, dvratil<br /></div>