【Python】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

あざらし

はじめまして、あざらしです。 フリーターからエンジニア会社へ就職し、 現在はフリーランスのシステムエンジニアとして働いています。 本業のエンジニア業のかたわら、 ✍️ ブログ運営 と「収入の柱を増やす挑戦」を少しずつ続けています。 フリーター時代から比べると、 段階的に収入が増えていくのを実感できるのが素直にうれしい今日この頃。 このブログでは、日々の気づき・体験談 IT・ガジェット・ゲーム系の話 「調べて分かったこと」を噛み砕いた解説 などを中心に、ジャンルに縛られない雑記ブログとして発信しています。 「自分と同じように悩んでいる人のヒントになればいいな」 そんな気持ちで更新中です。 👉 プロフィール詳細は、名前「あざらし」をクリックしてください