Error with Simplemapi.py

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Mon Aug 27 00:00:21 EDT 2007


En Fri, 24 Aug 2007 04:03:05 -0300, Mick Duprez <duprez at hinet.net.au>  
escribi�:

> I have a small problem. I get an error I don't know how to resolve,
> any help would be much appreciated.
> I'm using Python25 on winXP pro and the script from the link above.
> Here's the error -
>
>>>> mailtest.SendMail('noone at somewhere.net','test','test  
>>>> string','c:\dbs.txt')

That should be 'c:\\dbs.txt' or r'c:\dbs.txt'

> Traceback (most recent call last):
>   File "<pyshell#10>", line 1, in <module>
>     mailtest.SendMail('noone at somewhere.net','test','test string','c:
> \dbs.txt')
>   File "C:\Python25\mailtest.py", line 135, in SendMail
>     cast(NULL, lpMapiRecipDesc), RecipCnt, recip,
>   File "C:\Python25\lib\ctypes\__init__.py", line 478, in cast
>     return _cast(obj, obj, typ)
> ArgumentError: argument 1: <type 'exceptions.TypeError'>: wrong type
>>>>

I'm unsure what those cast(NULL, ...) are supposed to do, but they look  
all wrong. NULL, as defined on that script, is *not* a C NULL pointer (use  
None for that).
(In fact the whole script doesn't look well at all - do you *have* to use  
MAPI? can't use SMTP instead? Even if you must use MAPI, try the pywin32  
package from Mark Hammond, it has MAPI support and a demo script for  
sending mail)

> I have had a brief look at the C api for these structs and functions
> but I can't resolve it, it is probably something simple.
> The piece of code I don't understand though is this -
>
> MapiRecipDesc_A = MapiRecipDesc * len(RecipWork) #size of struct??

This declares a new type, an array of len(RecipWork) items, each of type  
MapiRecipDesc

> rda = MapiRecipDesc_A() # isn't it MapiRecipDesc as declared??

This creates an instance of the above array.

-- 
Gabriel Genellina




More information about the Python-list mailing list