Client for Microsoft Exchange Web Services (EWS)
Project description
This module provides an well-performing, well-behaving and simple interface for communicating with a Microsoft Exchange 2007-2016 Server or Office365 using Exchange Web Services (EWS). It currently implements autodiscover, and functions for searching, creating, updating and deleting calendar, mailbox, task and contact items.
Usage
Here is a simple example that inserts, retrieves and deletes calendar items in an Exchange calendar:
from exchangelib import DELEGATE, IMPERSONATION, IdOnly, Account, Credentials, \
EWSDateTime, EWSTimeZone, Configuration, NTLM
from exchangelib.folders import Calendar, CalendarItem
year, month, day = 2016, 3, 20
tz = EWSTimeZone.timezone('Europe/Copenhagen')
# Build a list of calendar items
calendar_items = []
for hour in range(7, 17):
calendar_items.append(CalendarItem(
start=tz.localize(EWSDateTime(year, month, day, hour, 30)),
end=tz.localize(EWSDateTime(year, month, day, hour + 1, 15)),
subject='Test item',
body='Hello from Python',
location='devnull',
categories=['foo', 'bar'],
))
# Username in WINDOMAIN\username format. Office365 wants usernames in PrimarySMTPAddress
# ('myusername@example.com') format. UPN format is also supported.
credentials = Credentials(username='MYWINDOMAIN\\myusername', password='topsecret')
# If your credentials have been given impersonation access to the target account, use
# access_type=IMPERSONATION
account = Account(primary_smtp_address='john@example.com', credentials=credentials,
autodiscover=True, access_type=DELEGATE)
# If the server doesn't support autodiscover, use a Configuration object to set the
# server location:
# config = Configuration(server='mail.example.com', username='MYWINDOMAIN\\myusername',
# password='topsecret', auth_type=NTLM)
# account = Account(primary_smtp_address='john@example.com', config=config,
# access_type=DELEGATE)
# Create the calendar items in the user's standard calendar. If you want to access a
# non-standard calendar, choose a different one from account.folders[Calendar]
res = account.calendar.add_items(calendar_items)
print(res)
# Get Exchange ID and changekey of the calendar items we just created. We search by
# categories so we only get the items created by us.
ids = account.calendar.find_items(
start=tz.localize(EWSDateTime(year, month, day)),
end=tz.localize(EWSDateTime(year, month, day + 1)),
categories=['foo', 'bar'],
shape=IdOnly,
)
print(ids)
# Get the rest of the attributes on the calendar items we just created
items = account.calendar.get_items(ids)
print(items)
# Delete the calendar items again
res = account.calendar.delete_items(ids)
print(res)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
exchangelib-1.6.0.tar.gz
(56.0 kB
view details)
File details
Details for the file exchangelib-1.6.0.tar.gz
.
File metadata
- Download URL: exchangelib-1.6.0.tar.gz
- Upload date:
- Size: 56.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6fbad4e7762c97cb401efb600c9799badfc88398099dae7fd127dd34f107ba1 |
|
MD5 | 76c93eca426cc6535ec5b8f28ed9d9d7 |
|
BLAKE2b-256 | 902512bdbcb7807ec129ac5e87446d0480660caefdded325f8295951596925e7 |