forked from ollyg/EWS-Client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
124 lines (93 loc) · 4.37 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
NAME
EWS::Client - Microsoft Exchange Web Services Client
VERSION
version 1.141040
SYNOPSIS
Set up your Exchange Web Services client.
use EWS::Client;
use DateTime;
my $ews = EWS::Client->new({
server => 'exchangeserver.example.com',
username => 'oliver',
password => 's3krit', # or set in $ENV{EWS_PASS}
});
Then perform operations on the Exchange server:
my $entries = $ews->calendar->retrieve({
start => DateTime->now(),
end => DateTime->now->add( months => 1 ),
});
print "I retrieved ". $entries->count ." items\n";
while ($entries->has_next) {
print $entries->next->Subject, "\n";
}
my $contacts = $ews->contacts->retrieve;
DESCRIPTION
This module acts as a client to the Microsoft Exchange Web Services API.
From here you can access calendar and contact entries in a nicely
abstracted fashion. Query results are generally available in an iterator
and convenience methods exist to access the properties of each entry.
AUTHENTICATION
Depending on the configuration of the Microsoft Exchange server, you can
use either HTTP Basic Access Auth, or NTLM Negotiated Auth, from this
module. The default is HTTP Basic Access Auth, so if using NTLM, the
following additional option to "new()" is required:
use_negotiated_auth => 1,
METHODS
EWS::Client->new( \%arguments )
Instantiates a new EWS client. There won't be any connection to the
server until you call one of the calendar or contacts retrieval methods.
"server" => Fully Qualified Domain Name (required)
The host name of the Exchange server to which the module should
connect.
"username" => String (required)
The account username under which the module will connect to
Exchange.
For Basic Access Auth this value will be URI encoded by the module,
meaning you don't have to worry about escaping any special
characters. For NTLM Negotiated Auth, pass a "user@domain" format
username and it will automatically be converted into Windows'
"domain\user" format for you.
"password" => String OR via $ENV{EWS_PASS} (required)
The password of the account under which the module will connect to
Exchange.
For Basic Access Auth this value will be URI encoded by the module.
You can also provide the password via the "EWS_PASS" environment
variable.
"use_negotiated_auth" => True or False value
The module will assume you wish to use HTTP Basic Access Auth, in
which case you should enable that in your Exchange server. However
for negotiated methods such as NTLM set this to a True value.
"schema_path" => String (optional)
A folder on your file system which contains the WSDL and two further
Schema files (messages, and types) which describe the Exchange 2007
Web Services SOAP API. They are shipped with this module so your
providing this is optional.
"server_version" => String (optional)
In each request to the server is specified the API version we expect
to use. By default this is set to "Exchange2007_SP1" but you have
the opportunity to set it to "Exchange2007" if you wish using this
option.
$ews->calendar()
Retrieves the EWS::Client::Calendar object which allows search and
retrieval of calendar entries and their various properties. See that
linked manual page for more details.
$ews->contacts()
Retrieves the EWS::Client::Contacts object which allows retrieval of
contact entries and their telephone numbers. See that linked manual page
for more details.
$ews->folders()
Retrieves the EWS::Client::Folder object which allows retrieval of
mailbox folder entries and their sizes. See that linked manual page for
more details.
KNOWN ISSUES
* No handling of time zone information, sorry.
* The "SOAPAction" Header might be wrong for Exchange 2010.
THANKS
To Greg Shaw for sending patches for NTLM Authentication support and
User Impersonation.
AUTHOR
Oliver Gorwits <[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by University of Oxford.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.