Accessing Public Folders (ADO)
Topic Last Modified: 2008-01-02
Example
VBScript
Note
The following example uses a file URL with the Exchange OLE DB (ExOLEDB) provider. The ExOLEDB provider also supports The HTTP: URL Scheme. The use of the HTTP: URL Scheme enables both client and server applications to use a single URL scheme.
<!--
Accessing Public Folders with ADO
Set the required permissions on Exchange Server and Internet Information Services (IIS).
Instructions
1) Create a folder named "test" in the Exchange store.
2) Save the file in that folder.
3) Change the strLocalPath and DomainName variables to reflect your mailbox and domain.
4) Save the file.
5) Open Internet Service Manager and browse to the "test" folder.
6) Right-click and go to Properties.
7) Go to the Directory Security tab.
8) Click the Edit button next to the handshake icon.
9) Clear the Anonymous Access check box.
10) Select the Digest Authentication and Integrated Windows Authentication check boxes.
11) Click OK.
12) Click OK.
13) Load the Active Server Pages (ASP) page into the browser.
-->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<% Dim Rec
Dim Rs
Dim strURL
Dim strQ
Dim DomainName
Dim strLocalPath
' Specify your own domain.
DomainName = "somedomain.example.com"
' Specify a URL to a folder or item.
strLocalPath = "public folders/publicfoldername"
Set Rec = CreateObject("ADODB.Record")
Set Rs = CreateObject("ADODB.Recordset")
' This URL is for a public folder.
strURL = "file://./backofficestorage/" & DomainName & "/" & strLocalPath
Rec.Open strURL
' Construct the SQL query to run on the folder.
' To avoid confusion in escaping quotes,
' Chr(34)s are used to delimit the URL.
strQ = "select "
strQ = strQ & " ""urn:schemas:mailheader:content-class"" "
strQ = strQ & ", ""DAV:href"" "
strQ = strQ & ", ""DAV:displayname"" "
strQ = strQ & " from scope ('shallow traversal of "
strQ = strQ & Chr(34) & strURL & Chr(34) & "')"
strQ = strQ & " ORDER BY ""DAV:displayname"" "
Rs.Open strQ, Rec.ActiveConnection
Rs.MoveFirst
While Not Rs.EOF
Response.Write Rs.Fields("DAV:displayname").Value & "</br>"
Rs.MoveNext
Wend
Rs.Close
Rec.Close
%>
<p>
</BODY>
</HTML>