3

Python w/ Outlook 2007 で、win32com および/または active_directory を使用して、サブフォルダーへの参照を取得して、MailItem をこのサブフォルダーに移動するにはどうすればよいですか?

次のような受信トレイ構造があります。

    受信トレイ
      | |
      +-- テスト
      | |
      `-- やること

次のように受信トレイフォルダーにアクセスできます。

import win32com.client
import active_directory
session = win32com.client.gencache.EnsureDispatch("MAPI.session")
win32com.client.gencache.EnsureDispatch("Outlook.Application")
outlook = win32com.client.Dispatch("Outlook.Application")
mapi = outlook.GetNamespace('MAPI')
inbox =  mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
print '\n'.join(dir(inbox))

しかし、マイクロソフトの例testに従ってサブディレクトリを取得しようとすると、オブジェクトにはサブディレクトリを取得するためのインターフェイスや方法 がありません。inboxFolders

Folderサブディレクトリを指すオブジェクトを取得するにはどうすればよいtestですか?

4

4 に答える 4

2

私にとってうまくいったことは、フォルダー名を繰り返し処理することでした。(この質問を投稿したとき、フォルダー名がわかりませんでした)。

import win32com.client
import active_directory
session = win32com.client.gencache.EnsureDispatch("MAPI.session")
win32com.client.gencache.EnsureDispatch("Outlook.Application")
outlook = win32com.client.Dispatch("Outlook.Application")
mapi = outlook.GetNamespace('MAPI')
inbox =  mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)

fldr_iterator = inbox.Folders   
desired_folder = None
while 1:
    f = fldr_iterator.GetNext()
    if not f: break
    if f.Name == 'test':
        print 'found "test" dir'
        desired_folder = f
        break

print desired_folder.Name
于 2010-01-11T19:23:32.403 に答える
1

これは、メールアイテムを「test」サブディレクトリに移動するために機能します(gencacheのものを削除することで簡略化されます)。

import win32com.client

olFolderInbox = 6
olMailItem = 0

outlook = win32com.client.Dispatch("Outlook.Application")
mapi = outlook.GetNamespace('MAPI')
inbox =  mapi.GetDefaultFolder(olFolderInbox)

item = outlook.CreateItem(olMailItem)
item.Subject = "test"

test_folder = inbox.Folders("test")
item.Move(test_folder)
于 2010-01-11T18:52:01.433 に答える