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