a oe @sJdZddlmZmZd ddZedkrFdZdZd Zd Z ee eeed dS) zImodule to send mail with Extended MAPI using the pywin32 mapi wrappers...)mapimapitagsNcstdtd|dtjtjB}|d}|tjtj tj fd| dd}t |dkr^qx|d} tj df| vrDqxqD| \\} } \} } \}}| d| dtjtjB}|tjd\}}|d\}} t|tjkrtd| || dtj}|dd}g}dd|r,|fdd |d D|rP|fd d |d D|rt|fd d |d D|tj||tj|ftj|fg|d|ddS) zSends an email to the recipient using the extended MAPI interface Subject and Message are strings Send{To,CC,BCC} are comma-separated address lists MAPIProfile is the name of the MAPI profileNrTz%got PT_ERROR instead of PT_BINARY: %scSs<tj|ftjdftjdftjdftj|ftjdftj|ffS)NFrZSMTP)rZPR_RECIPIENT_TYPEZPR_SEND_RICH_INFOZPR_DISPLAY_TYPEZPR_OBJECT_TYPEZPR_EMAIL_ADDRESS_AZ PR_ADDRTYPE_APR_DISPLAY_NAME_A) recipientZ recipienttyper @C:\Program Files\Certbot\pkgs\win32comext\mapi\demos\mapisend.py makeentry;sz SendEMAPIMail..makeentrycsg|]}|tjqSr )rZMAPI_TO.0rr r r Hz!SendEMAPIMail..,csg|]}|tjqSr )rZMAPI_CCr rr r rLrcsg|]}|tjqSr )rZMAPI_BCCr rr r rPr) rZMAPIInitializeZ MAPILogonExZ MAPI_EXTENDEDZMAPI_USE_DEFAULTZGetMsgStoresTableZ SetColumnsrZ PR_ENTRYIDrZPR_DEFAULT_STOREZ QueryRowslenZ OpenMsgStoreZ MDB_NO_DIALOGZMAPI_BEST_ACCESSZGetPropsZPR_IPM_OUTBOX_ENTRYIDZ PROP_TYPEZPT_ERROR TypeErrorZ OpenEntryZ CreateMessageextendsplitZModifyRecipientsZ MODRECIP_ADDZSetPropsZ PR_BODY_AZ PR_SUBJECT_AZ SaveChangesZ SubmitMessage)ZSubjectZMessageSendToZSendCCZSendBCC MAPIProfileZsessionZmessagestorestableZrowsrowZeid_tagZeidZname_tagnameZ def_store_tagZ def_storeZmsgstorehrZpropstagZ outboxfoldermessageZpalr rr SendEMAPIMail sT         r__main__zan.invalid at addressztesting one two threezTesting Extended MAPI!!)r)rrNNNN) __doc__Z win32com.mapirrr__name__rrZ SendMessageZ SendSubjectr r r r s P