当前位置:  开发笔记 > 编程语言 > 正文

从Python修改Microsoft Outlook联系人

如何解决《从Python修改MicrosoftOutlook联系人》经验,为你挑选了1个好方法。

我过去编写了一些Python工具来从Outlook联系人中提取数据.现在,我正在尝试修改我的Outlook联系人.我发现我的更改正在被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吗?如果是的话,它在哪里?

我是否犯了其他一些愚蠢的错误,导致我的数据被丢弃?

小智.. 6

我相信联系人上有一个.Save()方法,所以你需要添加:

contact.Save()



1> 小智..:

我相信联系人上有一个.Save()方法,所以你需要添加:

contact.Save()

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有