ADO, Python and MS Exchange

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • warren ali

    #1

    ADO, Python and MS Exchange

    Hi all!

    I'm new to python and I seem to have a hit a of a brick wall. I hope
    you guys can help.

    I'm trying to rewrite some of my vbscripts in python. This particular
    script connects to a mailbox in MS Exchange via ADO and calculates the
    mailbox size. I seem to have run into a couple of issues getting python
    to talk to MS Exchange via ADO though. This is the code i'm using:

    from win32com.client import Dispatch

    conn = Dispatch('ADODB .Connection')
    conn.Connection String = "URL=http://ctmx01/exchange/warren.ali"
    conn.Open()

    rs = Dispatch('ADODB .RecordSet')
    rs.ActiveConnec tion = conn

    rs.Open("Select http://schemas.microsoft.com/exchange/foldersize from
    scope ('deep traversal of http://ctex01/exchange/warren.ali')",
    conn.Connection String)

    But running the code, all i get is this error message:

    Traceback (most recent call last):
    File "C:\Python24\ad .py", line 12, in -toplevel-
    rs.Open("Select http://schemas.microsoft.com/exchange/foldersize
    from scope ('deep traversal of http://ctex01/exchange/warren.ali')",
    conn.Connection String)
    File
    "C:\Python24\li b\site-packages\win32c om\gen_py\2A751 96C-D9EB-4129-B803-931327F72D5Cx0x 2x8\_Recordset. py",
    line 93, in Open
    return self._oleobj_.I nvokeTypes(1022 , LCID, 1, (24, 0), ((12, 17),
    (12, 17), (3, 49), (3, 49), (3, 49)),Source, ActiveConnectio n,
    CursorType, LockType, Options)
    com_error: (-2147352567, 'Exception occurred.', (0, None, '', None, 0,
    -2147217900), None)

    Does anyone have any suggestions? I've kinda put the code together
    based on this tutorial: http://www.mayukhbose.com/python/ado/index.php
    but cant seem to adapt it to talk to exchange

    This is the code that works via vbscript



    Set Rec = CreateObject("A DODB.Record")
    Set Rs = CreateObject("A DODB.Recordset" )

    strURL = "http://exchangeserver/exchange/warren.ali"
    Rec.Open strURL

    sSQL = "Select"
    sSQL = sSQL & "
    ""http://schemas.microso ft.com/exchange/foldersize"" "
    'sSQL = sSQL & ", ""DAV:displayna me"" "
    sSQL = sSQL & " from scope ('deep traversal of " & Chr(34)
    sSQL = sSQL & strURL & Chr(34) & "')"
    'sSQL = sSQL & "Where ""DAV:isfolder" "=true"

    ' Open the recordset.
    Rs.Open sSQL, Rec.ActiveConne ction

    Thanks!!

    --
    Keeping it (sur)real since 1981. (now in
    print:http://thinkingmachine.blogsome.com)

Working...