9
我过去编写了一些Python工具来从我的Outlook联系人中提取数据。现在,我正在尝试修改我的Outlook联系人。我发现我的变化正在被Outlook所注意到,但他们并不坚持。我似乎正在更新一些缓存,但不是真正的记录。从Python修改Microsoft Outlook联系人
代码很简单。
import win32com.client
import pywintypes
o = win32com.client.Dispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")
profile = ns.Folders.Item("My Profile Name")
contacts = profile.Folders.Item("Contacts")
contact = contacts.Items[43] # Grab a random contact, for this example.
print "About to overwrite ",contact.FirstName, contact.LastName
contact.categories = 'Supplier' # Override the categories
# Edit: I don't always do these last steps.
ns = None
o = None
在这一点上,我切换到展开详细地址卡视图的Outlook。
我查看联系人摘要(未打开它),并且类别未更改(未刷新?)。
我打开联系人,其类别已更改,有时。 (不知道是什么时候,但感觉就像缓存相关。)如果它改变了,当我关闭它时,它会提示我保存更改,这很奇怪,因为我没有更改Outlook UI中的任何内容。
如果我退出并重新启动Outlook,更改将消失。
我嫌疑人我没有打电话SaveChanges,但我看不到哪个对象支持它。
所以我的问题是:
- 我应该调用的SaveChanges?如果是这样,它在哪里?
- 我是否犯了一些其他愚蠢的错误,导致我的数据被丢弃?
工程。非常感谢你。 – Oddthinking 2009-01-02 08:19:22