Outlook2016 を Python から制御してみる (4)
前回は、MailItem のサブジェクト (Subject) を表示してみました。
今回は、MailItem の色々なプロパティにアクセスしてみます。
単純に値を参照したり設定すれば良いものもあれば、お作法が必要だったりするものもあったため、実験してみて気づいたものを記載しておきます。
ちなみに、MailItem のクラス説明は以下のサイトを参考。
https://msdn.microsoft.com/ja-jp/vba/outlook-vba/articles/mailitem-object-outlook
送信者 (from)
for item in items: print(item.Sender) #-> "ほげほげ太郎" print(item.SenderEmailAddress) #-> "aaa@bbb.ne.jp"
"aaa@bbb.ne.jp" のようなメールアドレスは "SenderEmailAddress" で参照できました。
もう一つの "Sender" は、メールアドレスではなく表示名が表示されました。
宛先 (to/cc)
送信先・宛先を調べるために To や Cc を使ってみたところ、表示名は取れますが、送信先メールアドレスが取得できません。
for item in items: print(item.To) #-> "ほげほげ次郎"
送信先メールアドレスは、 Recipients に入っていました。
複数の宛先に送られることもありますので、Recipients はリストになっています。
for item in items: print(item.To) #-> "ほげほげ次郎" for rcpt in item.Recipients: print(rcpt.Address) #-> "xxx@yyy.com"
To なのか Cc なのかは、Recipient の Type から調べるようです。
件名 (Subject)
print(item.Subject)
件名は、Subject で参照できます。
分類 (タグ)
Outlook で、gmail の "ラベル" のような使い方をしたい場合は、"Categories" を使用します。
print(item.Categories)
複数の分類項目が指定されているときは "," (カンマ) 区切りになっていました。
新たに分類項目を追加したい場合、Categories に「 "," + 項目名」を追加すれば良いです。
既に指定済の項目を重複して追加した場合、分類項目が重複して表示される場合と、指定済項目が考慮されて重複しない場合があり、まだその違いが分かりません。
(例) item.Categories = "AAA, BBB, CCC" #-> いま、AAA, BBB, CCC の3つの分類項目がある。 item.Categories = item.Categories + ", CCC" print(item.Categories) #-> CCC が重複になる場合と、ならない場合があった。
本文
メール本文は "Body" で参照できます。
print(item.Body)
フラグ
フラグがついていると IsMarkedAsTask が True になります。
この場合は、TaskDueDate (期限) や TaskCompletedDate (完了日) を参照/設定することができます。
IsMarkedAsTask は読み込み専用です。
フラグを付けたいときは MarkAsTask() メソッドを使うようですが、これはまだ試していません。
そのほか
あらかじめ用意されているもの以外にアクセスしたい場合、PropertyAccessor を使います。
PropertyAccessor の実験は次回に。