<commit_before># Overview

EWS is an API that third-party programmers can use to communicate with
Microsoft Exchange Server. The API exists since Exchange Server 2007 and is
continuously up-dated by Microsoft and present in the latest iteration of the
product, Exchange Server 2016.

This library provides a native and platform-independent way to use EWS in your
C++ application.


<img src="ews-overview.png" width=80%>


## Supported Operations and Elements

* Most items are supported: `<CalendarItem>`, `<Message>`, `<Contact>`,
  `<Task>`. Note that we still don't support all properties of all of these
  items. But we're working on it.
* We support `<CreateItem>`, `<SendItem>`, `<FindItem>`, `<GetItem>`,
  `<UpdateItem>`, and `<DeleteItem>` operations.
* Basic support for attachments: `<CreateAttachment>`, `<GetAttachment>`,
  `<DeleteAttachment>` for file attachments. Note: Item attachments are not
  supported yet.
* Allow someone else to manage your mail and calendar:
    - [Impersonation](https://msdn.microsoft.com/en-us/library/office/dn722377(v=exchg.150).aspx)
      when you have a service process that needs to do regular tasks for a
      group of mailboxes or every mailbox in a database.
    - [Delegate
      access](https://msdn.microsoft.com/en-us/library/office/dn641957(v=exchg.150).aspx)
      for granting access to individual  users. You can add permissions
      individually to each mailbox and directly modify folder permissions.
* Discovering Exchange servers in your network with
  [Autodiscover](https://msdn.microsoft.com/en-us/library/office/dd899340(v=exchg.150).aspx)
  is supported.

## Supported Authentication Schemes

* HTTP basic auth
* NTLM

Note: Kerberos is currently not supported but its on the TODO list.

## Supported Compilers

* Visual Studio 2012
* Visual Studio 2013
* Visual Studio 2015
* Clang since 3.5
    - with libc++ on Mac OS X
    - with libstdc++ on Linux (Note that libc++ on Linux is not supported)
* GCC since 4.8 with libstdc++

|Compiler|64-bit|32-bit|
|--------|:----:|:----:|
|Visual Studio 2012| * | * |
|Visual Studio 2013|[![Build status](https://ci.appveyor.com/api/projects/status/6t0hsgh540vmml9c/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-ea5m3/branch/master)|[![Build status](https://ci.appveyor.com/api/projects/status/mv0vp5nujv3nj3kx/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-yxo80/branch/master)|
|Visual Studio 2015|[![Build status](https://ci.appveyor.com/api/projects/status/h0pt39gcb97wrfys/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-do8dr/branch/master)|[![Build status](https://ci.appveyor.com/api/projects/status/dl2vrfa5c7wdprrf/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-pa626/branch/master)|
|Clang 3.5 with libc++| * | * |
|GCC 4.8 with libstdc++|[![Build Status](https://travis-ci.org/otris/ews-cpp.svg?branch=master)](https://travis-ci.org/otris/ews-cpp)| * |
\* = will be added soon


## Supported Operating Systems

* Microsoft Windows 8.1 and Windows 10
* macOS starting with 10.12
* RHEL 7
* Ubuntu starting with 16.04 LTS
* SLES 12.1


## Supported Microsoft Exchange Server Versions

* Microsoft Exchange Server 2013 SP1

However, our goal is to support all Exchange Server versions since 2007.


## Run-time Dependencies

* libcurl, at least version 7.22


## Dev Dependencies

* Git
* CMake
* Doxygen (optional)
* Boost (optional)
* Python 2 or 3 (optional)


## Note Windows Users

You can obtain an up-to-date and easy-to-use binary distribution of libcurl
from here: [confusedbycode.com/curl](http://www.confusedbycode.com/curl/)

Additionally, you probably need to tell CMake where to find it. Just set
`CMAKE_PREFIX_PATH` to the path where you installed libcurl (e.g.
``C:\Program Files\cURL``) and re-configure.

You can also use the Windows batch script provided in
``scripts\build-curl.bat`` to download and compile libcurl for your particular
version of Visual Studio.


## Source Code<commit_msg>README: minor addition<commit_after># Overview

EWS is an API that third-party programmers can use to communicate with
Microsoft Exchange Server. The API exists since Exchange Server 2007 and is
continuously up-dated by Microsoft and present in the latest iteration of the
product, Exchange Server 2016.

This library provides a native and platform-independent way to use EWS in your
C++ application.


<img src="ews-overview.png" width=80%>


## Supported Operations and Elements

* Most items are supported: `<CalendarItem>`, `<Message>`, `<Contact>`,
  `<Task>`. Note that we still don't support all properties of all of these
  items. But we're working on it.
* We support `<CreateItem>`, `<SendItem>`, `<FindItem>`, `<GetItem>`,
  `<UpdateItem>`, and `<DeleteItem>` operations.
* Basic support for attachments: `<CreateAttachment>`, `<GetAttachment>`,
  `<DeleteAttachment>` for file attachments. Note: Item attachments are not
  supported yet.
* Allow someone else to manage your mail and calendar:
    - [Impersonation](https://msdn.microsoft.com/en-us/library/office/dn722377(v=exchg.150).aspx)
      when you have a service process that needs to do regular tasks for a
      group of mailboxes or every mailbox in a database.
    - [Delegate
      access](https://msdn.microsoft.com/en-us/library/office/dn641957(v=exchg.150).aspx)
      for granting access to individual  users. You can add permissions
      individually to each mailbox and directly modify folder permissions.
* Discovering Exchange servers in your network with
  [Autodiscover](https://msdn.microsoft.com/en-us/library/office/dd899340(v=exchg.150).aspx)
  is supported.

## Supported Authentication Schemes

* HTTP basic auth
* NTLM

Note: Kerberos is currently not supported but its on the TODO list.

## Supported Compilers

* Visual Studio 2012
* Visual Studio 2013
* Visual Studio 2015
* Clang since 3.5
    - with libc++ on Mac OS X
    - with libstdc++ on Linux (Note that libc++ on Linux is not supported)
* GCC since 4.8 with libstdc++

|Compiler|64-bit|32-bit|
|--------|:----:|:----:|
|Visual Studio 2012| * | * |
|Visual Studio 2013|[![Build status](https://ci.appveyor.com/api/projects/status/6t0hsgh540vmml9c/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-ea5m3/branch/master)|[![Build status](https://ci.appveyor.com/api/projects/status/mv0vp5nujv3nj3kx/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-yxo80/branch/master)|
|Visual Studio 2015|[![Build status](https://ci.appveyor.com/api/projects/status/h0pt39gcb97wrfys/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-do8dr/branch/master)|[![Build status](https://ci.appveyor.com/api/projects/status/dl2vrfa5c7wdprrf/branch/master?svg=true)](https://ci.appveyor.com/project/raldus/ews-cpp-pa626/branch/master)|
|Clang 3.5 with libc++| * | * |
|GCC 4.8 with libstdc++|[![Build Status](https://travis-ci.org/otris/ews-cpp.svg?branch=master)](https://travis-ci.org/otris/ews-cpp)| * |
\* = will be added soon


## Supported Operating Systems

* Microsoft Windows 8.1 and Windows 10
* macOS starting with 10.12
* RHEL 7
* Ubuntu starting with 16.04 LTS
* SLES 12.1


## Supported Microsoft Exchange Server Versions

* Microsoft Exchange Server 2013 SP1

However, our goal is to support all Exchange Server versions since 2007.


## Run-time Dependencies
The only thing you need for ews-cpp to run is

* libcurl, at least version 7.22


## Dev Dependencies
If you want to hack on ews-cpp itself you additionally need

* Git
* CMake
* Doxygen (optional)
* Boost (optional)
* Python 2 or 3 (optional)


## Note Windows Users

You can obtain an up-to-date and easy-to-use binary distribution of libcurl
from here: [confusedbycode.com/curl](http://www.confusedbycode.com/curl/)

Additionally, you probably need to tell CMake where to find it. Just set
`CMAKE_PREFIX_PATH` to the path where you installed libcurl (e.g.
``C:\Program Files\cURL``) and re-configure.

You can also use the Windows batch script provided in
``scripts\build-curl.bat`` to download and compile libcurl for your particular
version of Visual Studio.


## Source Code
{'fraction_non_alphanumeric': 0.12333455567779, 'fraction_numerical': 0.031536486982031535, 'mean_word_length': 4.382894736842105, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 0, '>': 31, 'https://': 26, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3447500', 'n_tokens_mistral': 2862, 'n_tokens_neox': 2585, 'n_words': 814}