def MimeToMapi (self, eml, m, flag = 0) :
if self.converter == None :
clsid = win32com.mapi.mapi.CLSID_IConverterSession
iid = win32com.mapi.mapi.IID_IConverterSession
try:
tmp = pythoncom.CoCreateInstance (clsid, None, pythoncom.CLSCTX_INPROC_SERVER, pythoncom.IID_IUnknown)
self.converter = tmp.QueryInterface (iid)
except :
# Test for ClickToRun version of Outlook and manually load library and create instance
for iconvpath in ("", "16.0", "15.0") :
regpath = os.path.join ("Software","Microsoft","Office",iconvpath,"ClickToRun","Registry","Machine","Software","Classes")
if platform.machine() == "AMD64" and platform.architecture()[0] == "32bit":
# 32bit application on 64bit platform
regpath = os.path.join (regpath,"Wow6432Node")
regpath = os.path.join (regpath,"CLSID", str(clsid),"InprocServer32")
self.converter = self.CoCreateInstanceC2R (winreg.HKEY_LOCAL_MACHINE, regpath, clsid, iid)
if self.converter != None :
break
if self.converter == None :
NameError("mapi:MimeToMapi : Can not create IConverterSession instance")
# Open file as IStream. Don't use win32com.mapi.mapi.OpenStreamOnFile as it doesn't
# handle Unicode file names
f = open(eml, "rb")
Istrm = util.wrap (FileStream(f), pythoncom.IID_IUnknown, None, True)
self.converter.MIMEToMAPI(Istrm, m, flag)
评论列表
文章目录