RE: [Zope] Zope, COM and Outlook
I tried your suggestion, but this time it says "Error Type: com_error, Error Value: (-2146959355, 'Error en la ejecuci\xf3n de servidor', None, None)" (in English it would be something like "Error executing server"). The traceback is the same as before. Igor
Try this: # Create instance of Outlook pythoncom.CoInitialize() ### Added o = win32com.client.Dispatch("Outlook.Application")
----- Original Message ----- From: "Igor Leturia" <IGOR@emun.com> To: <zope@zope.org> Sent: Wednesday, May 28, 2003 5:49 PM Subject: [Zope] Zope, COM and Outlook
Hi all!
I need to obtain someone's e-mail address from Outlook's default address book. I found a piece of python code in the internet which I modified, and it now looks like this:
import codecs, win32com.client
def obtainaddress(name): # Create instance of Outlook o = win32com.client.Dispatch("Outlook.Application") mapi = o.GetNamespace("MAPI") folder = mapi.GetDefaultFolder(win32com.client.constants.olFolderContacts) print folder.Item("Igor Leturia").Address o = None
obtainaddress('Igor')
The code needs win32com, so I installed ActivePython and copied the win32com folder to Zope's lib. I tested the code in Zope's python and it works.
But as I need to access it from Zope, I included the function in one of the Zope source modules (User.py to be precise). And when I call it from DTML, it gives me an error:
Error Type: com_error Error Value: (-2147221008, 'CoInitialize not called.', None, None)
I've put some traces and I know the error is in the first line, o = win32com.client.Dispatch("Outlook.Application").
Any ideas? Thanks in advance,
Igor Leturia
P.S.: Zope's traceback says:
Traceback (innermost last): File C:\Zope\lib\python\ZPublisher\Publish.py, line 150, in publish_module File C:\Zope\lib\python\ZPublisher\Publish.py, line 114, in publish File C:\Zope\lib\python\Zope\__init__.py, line 159, in zpublisher_exception_hook (Object: Zope) File C:\Zope\lib\python\ZPublisher\Publish.py, line 98, in publish File C:\Zope\lib\python\ZPublisher\mapply.py, line 88, in mapply (Object: AAAAA) File C:\Zope\lib\python\ZPublisher\Publish.py, line 39, in call_object (Object: AAAAA) File C:\Zope\lib\python\OFS\DTMLMethod.py, line 130, in __call__ (Object: AAAAA) File C:\Zope\lib\python\DocumentTemplate\DT_String.py, line 473, in __call__ (Object: AAAAA) File C:\Zope\lib\python\DocumentTemplate\DT_Util.py, line 159, in eval (Object: acl_users.getUser('IGOR').getMail()) (Info: acl_users) File <string>, line 2, in f File C:\Zope\lib\python\AccessControl\User.py, line 299, in getMail File C:\Archivos de programa\Python21\Lib\site-packages\win32com\client\__init__.py, line 92, in Dispatch File C:\Archivos de programa\Python21\Lib\site-packages\win32com\client\dynamic.py, line 81, in _GetGoodDispatchAndUserName File C:\Archivos de programa\Python21\Lib\site-packages\win32com\client\dynamic.py, line 72, in _GetGoodDispatch com_error: (see above)
On Monday 02 June 2003 16:13, Igor Leturia wrote:
I tried your suggestion, but this time it says "Error Type: com_error, Error Value: (-2146959355, 'Error en la ejecuci\xf3n de servidor', None, None)" (in English it would be something like "Error executing server"). The traceback is the same as before.
It might not be related to your problem, but you need to call CoInitializeEx to use COM safely in Zope http://www.zopelabs.com/cookbook/993002968 -- Toby Dickenson http://www.geminidataloggers.com/people/tdickenson
participants (2)
-
Igor Leturia -
Toby Dickenson