fum125’s diary

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

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

きっと、知っている人は知っている。知らない素人の私は意味が分からなくて苦労した PropertyAccessor によるアクセスです。

PropertyAccessor って?

自分なりの解釈では、「MailItem クラスにあらかじめ用意されていないプロパティにアクセスしたい場合に使用するもの」、「法則がよく分からないけど16進数コードで指定する」というものです。

とにかく使ってみましょう

https://msdn.microsoft.com/ja-jp/vba/outlook-vba/articles/referencing-properties-by-namespace

上記に仕様が公開されているのですが、やっぱり読んでも使い方がよく分かりません。
Outlook マクロとして公開されているサンプルを参考に、ちょっとやってみます。

PROPNAME = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"

for item in items:
    pa = item.PropertyAccessor
    header = pa.GetProperty(PROPNAME)
    print(header)                               #-> メールのヘッダが表示される。

上記のソースで、メールヘッダが全て取得できます。

0x007D001E 以外の指定可能な値に何があるか? が分からず、
サイトで何気に見つけた例 "0x39FE001E" を指定してもエラーとなったため、
この全ヘッダー出力の例以外には、まだ成功していません。