fum125’s diary

IT全般に関する技術メモなど

Outlook2016 を Python から制御してみる (2)

前回の実験で、デフォルトの受信フォルダにはアクセスできました。
今回は、その他のフォルダへのアクセスを試してみます。

 

受信フォルダ配下のフォルダ一覧を調べてみる

 
まず最初に、Outlook を使って、受信トレイ配下に "folderA, B, C" の3つのフォルダを作ってみました。

 f:id:fum125:20180606222905p:plain

方法1: ループで回して、すべてを表示する。

受信トレイ配下のフォルダ一覧は、『受信トレイ』の  "Folders" を順にアクセスすることで、取得することができました。

 :
inbox = mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
for f in inbox.Folders:
    print(f.Name)
-------------------------------
folderA
folderB
folderC
方法2: フォルダ名が事前に分かっていれば、直接フォルダ名を指定する。

フォルダ名が事前に分かっていれば、直接フォルダ名を指定することで、目的の子フォルダへアクセスできました。

 :
inbox = mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
f = inbox.Folders['folderB']
print(f.Name)
-------------------------------
folderB


では、  "folderD" というのが存在するか? というのは、どうやって調べるのでしょう?
そこは、まだ勉強不足で分からなかったので、try ~ except を利用しました。

 :
inbox = mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
try:
    f = inbox.Folders['folderD']
    print('folderDは存在する')
expect:
    print('folderDは存在しない')

受信フォルダ配下に、新しいフォルダを作成する。

新しいフォルダの追加は、 "Add()" を使うようです。

inbox.Folders.Add('folderD')

f:id:fum125:20180606223054p:plain

folderD が作られました。