Warning, /pim/kdepim-runtime/resources/ews/README.md is written in an unsupported language. File is not indexed.
0001 ## Akonadi resource for Microsoft Exchange Web Services 0002 0003 This Akonadi resource provides the ability to use Microsoft Exchange accounts 0004 with KDE PIM applications like KMail and KOrganizer. 0005 0006 It allows to use KDE PIM applications with Exchange mailboxes, for which the 0007 server administrator has not enabled access using standard e-mail protocols 0008 (IMAP, POP3 or SMTP). Additionally since the resource communicates with Exchange 0009 using its native protocol (also used by Microsoft Outlook) it allows to use the 0010 full capabilities of Exchange which are not accessible over IMAP or POP3. 0011 0012 The aim of this project is to allow full management of Exchange mailboxes so 0013 that the KDE PIM suite can become a drop-in replacement for Microsoft Outlook. 0014 0015 Currently the EWS resource is an independent project, but in the long term the 0016 plan is for this to become part of KDE PIM. 0017 0018 ### Current status 0019 0020 The EWS resource is currently in preview state. It can be used as a daily driver 0021 when it comes to e-mail. For other tasks like calendar interaction (scheduling 0022 and accepting meetings) it is necessary to use either OWA or Microsoft Outlook. 0023 0024 ### Supported features 0025 0026 * E-mail reception and full mailbox access 0027 * Message & folder operations (copying, moving, deleting) 0028 * Sending e-mail through Exchange (by default Exchange doesn't use SMTP to send 0029 messages from clients) 0030 * Server-side tags 0031 * Calendar view (read-only) 0032 0033 ### Planned features 0034 0035 * Full calendar support (currently only read-only support is provided) 0036 * Task support 0037 * Server-side address autocompletion (will need to sort out some KDE PIM 0038 limitations) 0039 * Out-of-office status manipulation 0040 * Server-side message filtering 0041 * Access to additional mailboxes & shared calendars 0042 0043 ### Software requirements 0044 0045 * Microsoft Exchange 2007 SP1 or later 0046 * Qt 5.5 or later 0047 * KDE Frameworks 5.17 or later (at least 5.19 is recommended when using NTLMv2 0048 authentication)* 0049 * KDE PIM 15.04.0 or later 0050 0051 \* Alternatively you can also recompile the `kio` package and backport the 0052 following commits from [kio.git](https://quickgit.kde.org/?p=kio.git): 0053 0054 * 5961ac8e Fix NTLMv2 stage 3 response creation 0055 * 2f894291 Try NTLMv2 authentication if the server denies NTLMv1 0056 * f665dd30 Try multiple authentication methods in case of failures 0057 0058 The last commit is only necessary if your system is also configured to use Kerberos. 0059 0060 ### Debugging 0061 0062 #### Some Akonadi basics 0063 0064 Akonadi runs every resource in a separate process, which communicates to 0065 the Akonadi server over DBus. When multiple instances of the same resource (for 0066 ex. multiple Exchange accounts) are present, each of them also runs in a 0067 separate process. You can easily find out your EWS resource instances by 0068 running `ps -fu $(whoami) | grep akonadi_ews_resource`. 0069 0070 Each Akonadi resource has a unique identifier. It is composed automatically out 0071 of the resource name and a number, which starts from 0 and is incremented with 0072 every new resource of that type. Removing a resource and adding it again will 0073 not reset the counter. For example the first instance of the EWS resource would 0074 use the identifier `akonadi_ews_resource_0`. The actual resource identifier is 0075 visible in the command line of the resource process after executing the `ps` 0076 command above. 0077 0078 #### Running the resource process in the terminal 0079 0080 By default the resource processes are started by the Akonadi server in the 0081 background. All the output is sent to the log (either the journal in case of 0082 systemd or the ~/.xsession-errors otherwise). 0083 0084 It is possible to run the resource process in the foreground in which case all 0085 the logs will be visible in the active console. Such mode of operation is very 0086 useful for debugging. 0087 0088 To run the resource process interactively: 0089 0090 1. Learn the resource identifier (use the `ps` command above). 0091 2. Kill the resource process. This needs to be done a few times as Akonadi will 0092 initially try to restart the resource. The easiest way is to execute 0093 `while [ $(killall akonadi_ews_resource) ]; do sleep 1; done`. Warning, if 0094 you have several instances of the Exchange resource (several accounts) this 0095 command will terminate all of them. 0096 3. Execute the resource process interactively (substitute the identifier with 0097 the one obtained in step 1: 0098 `akonadi_ews_resource --identifier akonadi_ews_resource_0`. 0099 0100 Once running interactively you can at any moment terminate it by pressing Ctrl+C 0101 and start it again. 0102 0103 In order to run the resource process in the background again you have to restart 0104 Akonadi by executing `akonadictl restart`. 0105 0106 #### Enabling additional debug messages. 0107 0108 Currently there are two kinds of debug messages that can be enabled in addition 0109 to the default ones: 0110 0111 - Request information (log_ews_resource_request) - prints information about each 0112 EWS request sent and the response received. 0113 - Protocol information (log_ews_resource_proto) - dumps all request and 0114 response data (XML). 0115 0116 To enable these messages edit (or create) the file 0117 `~/.config/QtProject/qtlogging.ini` and put the following lines inside: 0118 0119 ``` 0120 [Rules] 0121 log_ews_resource_request.debug=true 0122 log_ews_resource_proto.debug=true 0123 ``` 0124 0125 Setting each of them to `false` or adding a `#` character in front of the line 0126 will disable each of the logging categories. 0127 0128 When starting the resource interactively make sure to edit the file and adjust 0129 the debug messages before actually starting the resource. 0130 0131 #### Request dumps 0132 0133 When the protocol information messages are enabled or when some request fails 0134 the contents of the request and the associated response will be dumped into 0135 files in your `/tmp/` directory. The names of the relevant files will be printed 0136 in the log next to the information about the failed request. Attaching such 0137 dumps can be useful for debugging, however before doing so please make sure they 0138 don't contain any confidential information. 0139 0140 ### Reporting bugs 0141 0142 Please report bugs on the GitHub project page. In most cases it will be a great 0143 help when logs are provided. 0144 0145 Note however that the logs may information from your e-mail that might include 0146 company confidential information. Before sending any logs please review them and 0147 make sure any such information like e-mail addresses, dates or subjects is 0148 anonymized (i.e. replaced by some meaningless information).