我試圖自動創建一堆Outlook規則。我正在使用Python 2.7,win32com和Outlook 2007.爲此,我必須創建一個新的Rule對象併爲其移動操作指定一個文件夾。但是,我無法成功設置Folder屬性 - 儘管我給出了正確類型的對象,但它仍然保持爲無。使用win32com設置屬性
import win32com.client
from win32com.client import constants as const
o = win32com.client.gencache.EnsureDispatch("Outlook.Application")
rules = o.Session.DefaultStore.GetRules()
rule = rules.Create("Python rule test", const.olRuleReceive)
condition = rule.Conditions.MessageHeader
condition.Text = ('Foo', 'Bar')
condition.Enabled = True
root_folder = o.GetNamespace('MAPI').Folders.Item(1)
foo_folder = root_folder.Folders['Notifications'].Folders['Foo']
move = rule.Actions.MoveToFolder
print foo_folder
print move.Folder
move.Folder = foo_folder
print move.Folder
# move.Enabled = True
# rules.Save()
打印
<win32com.gen_py.Microsoft Outlook 12.0 Object Library.MAPIFolder instance at 0x51634584> None None
我看在非動態模式下使用win32com當由makepy
生成的代碼。 _MoveOrCopyRuleAction
類別的字典中有'Folder'
的條目,但除此之外,我很難過。
我有這個IronPython的工作。我需要使用:Outlook._MoveOrCopyRuleAction.Folder.SetValue(rule.Actions.MoveToFolder,文件夾)。儘管如此,我仍然想看到一個win32com答案。 – PAG
運行上述命令時,我得到的錯誤對象沒有屬性'DefaultStore'。我是否缺少規則存儲?什麼是一個?此外,win32com中的SetFolder()方法如何處理IronPython使用的對象? –