Hi Lenard, As the risk of severely embarassing myself can I ask for your help one more time. I have tried changing your script to include attachments, but guess what, (and this should come as no suprise) I can't do it. So.... Here is my feeble attempt at changing the script.. ---------------------------------------------------------------------------------------- import os from ctypes import *
FLAGS = c_ulong LHANDLE = c_ulong LPLHANDLE = POINTER(LHANDLE) # Return codes SUCCESS_SUCCESS = 0 # Recipient class MAPI_ORIG = 0 MAPI_TO = 1 NULL = c_void_p(None) class MapiRecipDesc(Structure): _fields_ = [('ulReserved', c_ulong), ('ulRecipClass', c_ulong), ('lpszName', c_char_p), ('lpszAddress', c_char_p), ('ulEIDSize', c_ulong), ('lpEntryID', c_void_p), ] lpMapiRecipDesc = POINTER(MapiRecipDesc) class MapiFileDesc(Structure): _fields_ = [('ulReserved', c_ulong), ('flFlags', c_ulong), ('nPosition', c_ulong), ('lpszPathName', c_char_p), ('lpszFileName', c_char_p), ('lpFileType', c_void_p), ] lpMapiFileDesc = POINTER(MapiFileDesc) class MapiMessage(Structure): _fields_ = [('ulReserved', c_ulong), ('lpszSubject', c_char_p), ('lpszNoteText', c_char_p), ('lpszMessageType', c_char_p), ('lpszDateReceived', c_char_p), ('lpszConversationID', c_char_p), ('flFlags', FLAGS), ('lpOriginator', lpMapiRecipDesc), # ignored? ('nRecipCount', c_ulong), ('lpRecips', lpMapiRecipDesc), ('nFileCount', c_ulong), ('lpFiles', lpMapiFileDesc), ] lpMapiMessage = POINTER(MapiMessage) MAPI = windll.mapi32 MAPISendMail=MAPI.MAPISendMail MAPISendMail.restype = c_ulong # Error code MAPISendMail.argtypes = (LHANDLE, # lhSession c_ulong, # ulUIParam lpMapiMessage, # lpMessage FLAGS, # lpFlags c_ulong, # ulReserved ) def SendMail(recipient, subject, body, attach=[]): """Post an e-mail message using Simple MAPI recipient - string: address to send to subject - string: subject header body - string: message text attach - string: files to attach """ attach = map( os.path.abspath, attach ) nFileCount = len(attach) if attach: MapiFileDesc_A = MapiFileDesc * len(attach) fda = MapiFileDesc_A() for fd, fa in zip(fda, attach): fd.ulReserved = 0 fd.flFlags = 0 fd.nPosition = -1 fd.lpszPathName = fa fd.lpszFileName = None fd.lpFileType = None lpFiles = fda recip = MapiRecipDesc(0, MAPI_TO, None, recipient, 0, None) #msg = MapiMessage(0, subject, body, None, None, None, 0, # cast(NULL, lpMapiRecipDesc), 1, pointer(recip), # nFileCount, cast(NULL, lpMapiFileDesc)) msg = MapiMessage(0, subject, body, None, None, None, 0, cast(NULL, lpMapiRecipDesc), 1, pointer(recip), nFileCount, cast(NULL, lpFiles)) rc = MAPISendMail(0, 0, byref(msg), 0, 0) if rc != SUCCESS_SUCCESS: raise WindowsError, "MAPI error %i" % rc -- http://mail.python.org/mailman/listinfo/python-list