我不太确定从哪里开始。理想情况下,我希望有一个Perl脚本连接到我的工作的Exchange服务器并查询所有会议室时间表。我相信我想要完成的是this。唯一的问题是,我在Mac上运行,Exchange libraries仅在Windows上可用,因此我尝试在Perl中尝试SOAP方式。唯一的问题是,我真的不知道我在做什么。
我看了EWS::Client,这很棒......它允许我连接到Exchange服务器并从我的日历中获取事件。唯一的问题是,这个模块没有我想要的东西,所以我有点回到原点。如果我可以利用EWS :: Client的连接然后以某种方式向Exchange服务器发送XML请求,我想我已经拥有它,但我真的不知道该怎么做。
我已经开始使用此连接代码:
#! /usr/bin/env perl
use strict;
use warnings;
use LWP::UserAgent;
use SOAP::Lite;
use XML::Simple;
my $file = 'email.xml';
my $xml = new XML::Simple;
my $data = $xml->XMLin('email.xml');
my $service = 'https://<domain>/EWS/Services.wsdl';
my $addr = 'https://<domain>/EWS/Exchange.asmx';
my $domain = '<domain>';
my $uname = '<username>';
my $pass = '<password>';
my @ua_args = (keep_alive => 1);
my @creds = ($domain, '', $uname, $pass);
my $schema_ua = LWP::UserAgent->new(@ua_args);
$schema_ua->credentials(@creds);
# I believe this proxy call is making my connection
my $soap = SOAP::Lite->proxy($addr, @ua_args, credentials => \@creds);
$soap->schema->useragent($schema_ua);
$soap->uri('http://schemas.microsoft.com/exchange/services/2006/types');
当我运行这个脚本时,我没有收到任何错误,所以我认为它正在工作,但就像我已经说过的那样,我不知道怎么检查,除了发送一些XML到Exchange服务器。这就是我正在尝试加载 email.xml 文件(取自here),如下所示:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<GetItem
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<ItemShape>
<t:BaseShape>Default</t:BaseShape>
<t:IncludeMimeContent>true</t:IncludeMimeContent>
</ItemShape>
<ItemIds>
<t:ItemId Id="AAAlAF" ChangeKey="CQAAAB" />
</ItemIds>
</GetItem>
</soap:Body>
</soap:Envelope>
即使我没有使用这个XML - 除了将其加载到对象中 - 我相信它会失败,因为 Id 和 ChangeKey 值被复制了从引用的Microsoft页面...不确定我在哪里可以找到除Exchange服务器以外的其他值,但我不是管理员...只是一个简单的用户。
我的想法是我应该能够使用SOAP::Lite调用函数($client->call($method => @arguments);
)发送我的XML请求,但我甚至不确定我是否走正确的道路。你可以说,我对这个问题非常分散。如果有人能提供任何指导,我将非常感激。
此外,Outlook报告称它是版本14.3.7,我认为是Exchange 2010。