たくさんのOutlookルールを自動的に作成しようとしています。Python 2.7、win32com、およびOutlook 2007を使用しています。これを行うには、新しいRuleオブジェクトを作成し、その移動アクション用のフォルダーを指定する必要があります。ただし、Folderプロパティを正常に設定できません。適切なタイプのオブジェクトを指定しても、Noneのままになります。
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> なし なし
makepy
非動的モードでwin32comを使用するときに生成されるコードを見てきました。クラスにはそのdictに_MoveOrCopyRuleAction
エントリがありますが、それ以外は困惑しています。'Folder'
_prop_map_put_