Hey Sintec,
The only way I've been able to connect to Exchange web
services, outside of developing a dotnet class, is this way:
<cfset xbuf = "<?xml version='1.0'
encoding='utf-8'?>">
<cfset xbuf = xbuf & "<soap:Envelope xmlns:xsi='
http://www.w3.org/2001/XMLSchema-instance'
">
<cfset xbuf = xbuf & "xmlns:xsd='
http://www.w3.org/2001/XMLSchema'
">
<cfset xbuf = xbuf & "xmlns:soap='
http://schemas.xmlsoap.org/soap/envelope/'
">
<cfset xbuf = xbuf & "xmlns:t='
http://schemas.microsoft.com/exchange/services/2006/types'>">
<cfset xbuf = xbuf & "<soap:Body>">
<cfset xbuf = xbuf & "<CreateItem
SendMeetingInvitations='SendToNone' xmlns='
http://schemas.microsoft.com/exchange/services/2006/messages'
">
<cfset xbuf = xbuf & "xmlns:t='
http://schemas.microsoft.com/exchange/services/2006/types'
">
<cfset xbuf = xbuf &
"MessageDisposition='SaveOnly'>">
<cfset xbuf = xbuf & "<Items>">
<cfset xbuf = xbuf & "<t:Task>">
<cfset xbuf = xbuf & "<t:Subject>My
task</t:Subject>">
<cfset xbuf = xbuf &
"<t:DueDate>2007-12-03T21:32:52</t:DueDate>">
<cfset xbuf = xbuf &
"<t:Status>NotStarted</t:Status>">
<cfset xbuf = xbuf & "</t:Task>">
<cfset xbuf = xbuf & "<t:CalendarItem>">
<cfset xbuf = xbuf & "<t:Subject>My Calendar
Item</t:Subject>">
<cfset xbuf = xbuf &
"<t:Start>2007-12-03T21:32:52</t:Start>">
<cfset xbuf = xbuf &
"<t:End>2007-12-03T21:32:52</t:End>">
<cfset xbuf = xbuf &
"<t:IsAllDayEvent>1</t:IsAllDayEvent>">
<cfset xbuf = xbuf & "</t:CalendarItem>">
<cfset xbuf = xbuf & "</Items>">
<cfset xbuf = xbuf & "</CreateItem>">
<cfset xbuf = xbuf & "</soap:Body>">
<cfset xbuf = xbuf & "</soap:Envelope>">
<cfscript>
exchangeservice = createobject("com","microsoft.xmlhttp");
exchangeservice.Open("post","https://serverurl",False,"domain\userid","password");
exchangeservice.setRequestHeader("Content-Type","text/xml");
exchangeservice.setRequestHeader("translate","F");
exchangeservice.send(xbuf);
xmlobj = exchangeservice.responsetext;
writeoutput(exchangeservice.status);
writeoutput(exchangeservice.responsetext);
</cfscript>
<cfset responsexml = xmlparse(xmlobj)>
<cfset itemcodes =
responsexml["soap:Envelope"]["soap:Body"]["m:CreateItemResponse"]["m:ResponseMessages"]["m:CreateItemResponseMessage"]["m:Items"]["t:Task"]["t:ItemId"].XmlAttributes>
<cfoutput>
<br>TaskID: #itemcodes.Id#
<br>ChangeKey: #itemcodes.ChangeKey#
</cfoutput>
The above sends an xml string to the service and retrieves
the item id & change key (needed for updates). A successful
transaction returns a status code of 200. If you get anything else,
do a <cfdump> of the responsexml and you'll find fairly
useful error info.
I've tried the dotnet route, which actually worked quite well
(hats off to the CF8 team for adding this!), but I got tired of
trying to translate C# examples to VB in the Exchange 2007 SDK.
Hope this helps
🙂