Python에서 Microsoft Outlook 연락처 수정
문제
과거에 몇 가지 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으로 바뀝니다.
연락처 요약 (열지 않고)을보고 카테고리는 변경되지 않습니다 (새로 고침되지 않습니까?).
연락처를 열고 그 범주가 변경되었습니다. 때때로. (언제 확실하지 않지만, 캐시가 관련되어 있다고 느낍니다.) 변경된 경우 변경 사항을 닫을 때 변경 사항을 저장하라는 메시지가 표시됩니다.
전망을 종료하고 다시 시작하면 변경 사항이 사라집니다.
나 의심하다 나는 전화하지 못한다 변경 사항을 저장하다, 그러나 나는 어떤 객체가 그것을 지원하는지 볼 수 없습니다.
그래서 내 질문은 다음과 같습니다.
- Savechanges에게 전화해야합니까? 그렇다면 어디에 있습니까?
- 다른 어리석은 실수를하고 있는데, 이로 인해 내 데이터가 폐기되고 있습니까?
해결책
연락처에 .save () 메소드가 있다고 생각하므로 다음을 추가해야합니다.
contact.save ()
제휴하지 않습니다 StackOverflow