Error with Simplemapi.py

Mick Duprez duprez at hinet.net.au
Mon Aug 27 02:05:30 EDT 2007


On Aug 27, 2:00 pm, "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
wrote:
> En Fri, 24 Aug 2007 04:03:05 -0300, Mick Duprez <dup... 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('no... 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('no... 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

Thank you very much Gabriel, changing the NULL to None did the trick
(it also helps if I reload the changed module after editing!:( ). Yes
that is an old script and I will look into your suggestions. Basically
I'd just like to use the default mail client (windows or Unix/Linux)
to send simple mail with attachments, this way I can log the
attachments I send to a db for example for document transmittal/
register reports etc.
Thanks also for the code explanations,
Cheers,
Mick.




More information about the Python-list mailing list