Exchangelib

Latest version: v5.4.0

Safety actively analyzes 629994 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 14

3.0.0

-----

- The new Autodiscover implementation added in 2.2.0 is now default. To switch back to the old implementation, set the
environment variable `EXCHANGELIB_AUTODISCOVER_VERSION=legacy`.
- Removed support for Python 2

2.2.0

-----

- Added support for specifying a separate retry policy for the autodiscover service endpoint selection. Set via
the `exchangelib.autodiscover.legacy.INITIAL_RETRY_POLICY` module variable for the the old autodiscover
implementation, and via the
`exchangelib.autodiscover.Autodiscovery.INITIAL_RETRY_POLICY` class variable for the new one.
- Support the authorization code OAuth 2.0 grant type (see issue 698)
- Removed the `RootOfHierarchy.permission_set` field. It was causing too many failures in the wild.
- The full autodiscover response containing all contents of the reponse is now available as `Account.ad_response`.
- Added a new Autodiscover implementation that is closer to the specification and easier to debug. To switch to the new
implementation, set the environment variable `EXCHANGELIB_AUTODISCOVER_VERSION=new`. The old one is still the default
if the variable is not set, or set to `EXCHANGELIB_AUTODISCOVER_VERSION=legacy`.
- The `Item.mime_content` field was switched back from a string type to a `bytes` type. It turns out trying to decode
the data was an error (see issue 709).

2.1.1

-----

- Bugfix release.

2.1.0

-----

- Added support for OAuth 2.0 authentication
- Fixed a bug in `RelativeMonthlyPattern` and `RelativeYearlyPattern` where the `weekdays` field was thought to be a
list, but is in fact a single value. Renamed the field to `weekday` to reflect the change.
- Added support for archiving items to the archive mailbox, if the account has one.
- Added support for getting delegate information on an Account, as `Account.delegates`.
- Added support for the `ConvertId` service. Available as `Protocol.convert_ids()`.

2.0.1

-----

- Fixed a bug where version 2.x could not open autodiscover cache files generated by version 1.x packages.

2.0.0

-----

- `Item.mime_content` is now a text field instead of a binary field. Encoding and decoding is done automatically.
- The `Item.item_id`, `Folder.folder_id` and `Occurrence.item_id` fields that were renamed to just `id` in 1.12.0, have
now been removed.
- The `Persona.persona_id` field was replaced with `Persona.id` and `Persona.changekey`, to align with the `Item`
and `Folder` classes.
- In addition to bulk deleting via a QuerySet (`qs.delete()`), it is now possible to also bulk send, move and copy items
in a QuerySet (via `qs.send()`, `qs.move()` and `qs.copy()`, respectively).
- SSPI support was added but dependencies are not installed by default since it only works in Win32 environments.
Install as `pip install exchangelib[sspi]` to get SSPI support. Install with `pip install exchangelib[complete]` to
get both Kerberos and SSPI auth.
- The custom `extern_id` field is no longer registered by default. If you require this field, register it manually as
part of your setup code on the item types you need:

python
from exchangelib import CalendarItem, Message, Contact, Task
from exchangelib.extended_properties import ExternId

CalendarItem.register("extern_id", ExternId)
Message.register("extern_id", ExternId)
Contact.register("extern_id", ExternId)
Task.register("extern_id", ExternId)

- The `ServiceAccount` class has been removed. If you want fault tolerance, set it in a
`Configuration` object:

python
from exchangelib import Configuration, Credentials, FaultTolerance

c = Credentials("foo", "bar")
config = Configuration(credentials=c, retry_policy=FaultTolerance())

- It is now possible to use Kerberos and SSPI auth without providing a dummy
`Credentials('', '')` object.
- The `has_ssl` argument of `Configuration` was removed. If you want to connect to a plain HTTP endpoint, pass the full
URL in the `service_endpoint` argument.
- We no longer look in `types.xsd` for a hint of which API version the server is running. Instead, we query the service
directly, starting with the latest version first.

Page 7 of 14

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.