私は一連のOutlookルールを自動的に作成しようとしています。私はPython 2.7、win32com、Outlook 2007を使用しています。これを行うには、新しいRuleオブジェクトを作成し、移動アクションのフォルダを指定する必要があります。しかし、私はフォルダのプロパティを正常に設定することはできません - 私は正しいタイプのオブジェクトを与えるにもかかわらず、それはただのままです。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
Iは、非動的モードでwin32com使用時makepy
によって生成されたコードを見てきました。クラス_MoveOrCopyRuleAction
に_prop_map_put_
dictに'Folder'
のエントリがありますが、それ以外は私が困惑しています。
これはIronPythonで動作しています。私はOutlook._MoveOrCopyRuleAction.Folder.SetValue(rule.Actions.MoveToFolder、folder)を使う必要がありました。それでも、私はまだwin32comの答えを見たいと思います。 – PAG
上記の実行時に、エラーオブジェクトに 'DefaultStore'という属性がありません。ルールストアがありませんか?何ですか?また、IronPythonが使用するオブジェクトに対して、Win32comのSetFolder()アプラックが機能しますか? –