【Python】Outlook 受信メール情報の取得方法(業務自動化)

Outlook操作

参考書籍

本記事は以下の書籍などを参考に実際に実装したものを記事にしております。

使用ライブラリ

・Win32com.client

標準ライブラリのためインストール不要

コード

◆すべてのアカウントのサブフォルダを含むすべてのメール情報を取得する。

<コード>


import win32com.client

# ApplicationオブジェクトのOutlookオブジェクトを取得します。
# その際MAPIを使用して取得します。
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

# Outlookに結び付けているアカウントの受信フォルダ情報を取得します。
accounts = outlook.Folders

for account in accounts:
    print("└ ",account)
    folders = account.Folders
    for folder in folders:
        print("  └ ",folder)
        mails = folder.Items
        for mail in mails:
            print("-----------------")
            print("1.件名: " ,mail.subject)
            print("2.差出人: %s [%s]" % (mail.sendername, mail.senderEmailAddress))
            print("3.受信日時: ", mail.receivedtime)
            print("4.未読: ", mail.Unread)
            print("5.本文: ", mail.body)

◆1つアカウントの受信フォルダ内のメールだけを取得する。

<コード>

import win32com.client

# ApplicationオブジェクトのOutlookオブジェクトを取得します。
# その際MAPIを使用して取得します。
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

# Outlookに結び付けているアカウントの受信フォルダ情報を取得します。
accounts = outlook.Folders[0]
# 指定したアカウントがあっているか確認する。
print(accounts)

for account in accounts:
    print("└ ",account)
    # 受信フォルダが初めにあると仮定して[0]を指定
    folders = account.Folders[0]
    for folder in folders:
        print("  └ ",folder)
        mails = folder.Items
        for mail in mails:
            print("-----------------")
            print("1.件名: " ,mail.subject)
            print("2.差出人: %s [%s]" % (mail.sendername, mail.senderEmailAddress))
            print("3.受信日時: ", mail.receivedtime)
            print("4.未読: ", mail.Unread)
            print("5.本文: ", mail.body)

CM

コメント

タイトルとURLをコピーしました