HOWTO: EWS: Consume Exchange Web Service from VBScript
Yes you can consume Exchange Web Service using VBScript or any language / platform which support HTML.
In this sample, I have used XMLHTTP to send/receive soap request/response. Then I have used MSXML Document to parse the XML returned by the server to get the response code.
I have converted my recently posted sample, HOWTO: EWS: Disable Out-of-office / OOF message to VBScript code.
Const strUrl = "https://Your-Cas-Server/ews/exchange.asmx"
Const strUser = "Username"
Const strPass = "Password"
Const strDom = "Domain"
Const strEmailAddress = "youremail@domain.com"
Dim oXml
Dim xmlDoc
Dim strXmlData
Set oXml = CreateObject("MSXML2.XMLHTTP")
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
strXmlData = "<?xml version=""1.0"" encoding=""utf-8""?>"
strXmlData = strXmlData & "<soap:Envelope xmlns:soap=""https://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""https://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""https://www.w3.org/2001/XMLSchema"">"
strXmlData = strXmlData & " <soap:Body>"
strXmlData = strXmlData & " <SetUserOofSettingsRequest xmlns=""https://schemas.microsoft.com/exchange/services/2006/messages"">"
strXmlData = strXmlData & " <Mailbox xmlns=""https://schemas.microsoft.com/exchange/services/2006/types"">"
strXmlData = strXmlData & " <Address>" & strEmailAddress & "</Address>"
strXmlData = strXmlData & " </Mailbox>"
strXmlData = strXmlData & " <UserOofSettings xmlns=""https://schemas.microsoft.com/exchange/services/2006/types"">"
strXmlData = strXmlData & " <OofState>Disabled</OofState>"
strXmlData = strXmlData & " <ExternalAudience>All</ExternalAudience>"
strXmlData = strXmlData & " <InternalReply>"
strXmlData = strXmlData & " <Message />"
strXmlData = strXmlData & " </InternalReply>"
strXmlData = strXmlData & " <ExternalReply>"
strXmlData = strXmlData & " <Message />"
strXmlData = strXmlData & " </ExternalReply>"
strXmlData = strXmlData & " </UserOofSettings>"
strXmlData = strXmlData & " </SetUserOofSettingsRequest>"
strXmlData = strXmlData & " </soap:Body>"
strXmlData = strXmlData & "</soap:Envelope>"
oXml.open "POST", strUrl, False, strDom & "\" & strUser, strPass
oXml.setRequestHeader "Content-Type", "text/xml"
oXml.send strXmlData
If oXml.Status = "200" Then
If xmlDoc.loadXML(oXml.responseText) Then
If xmlDoc.documentElement.getElementsByTagName("ResponseMessage").Item(0).Attributes.getNamedItem("ResponseClass").Text = "Success" Then
MsgBox "Oof Disabled"
Else
MsgBox "Oof Cannot be disabled" & vbCrLf & xmlDoc.xml
End If
End If
Else
MsgBox "Error: " & oXml.Status & " - " & oXml.statusText
End If
Keywords: VBScript, MSXML, XMLHTTP, SetUserOofSettings, ExchangeImpersonation, Exchange Web Services, Exchange 2007, Out Of Office