win32com で Outlook の受信トレイのメールを読み込む(Python)
Python でメールを操作する練習をしようと思って
ちょっと調べたら
メールサーバーに直接アクセスする方法もあるが
win32com で Outlook を操作できるようなので
とりあえずそれでいじってみた。
メールの送信は誰かが書いたコードをコピペするだけでできたが
メールの受信は
inbox = mapi.GetDefaultFolder(6)
のようなコードが使われているが
わたしの環境では読み取れない。
folders = inbox.Folders
for folder in folders:
print('Name: ' + folder.name)
というコードを付加してフォルダーを表示してみると
Name: 連絡先候補
Name: スレッド アクション設定
Name: クイック操作設定
と表示される。
読み取りたいフォルダー番号はおそらく 5 なんだけど
フォルダー名を指定してもうまく読み取れない。
なので、ネットで調べたら
英語のページに
別の方法があったので
それでコーディングしてみた。
import win32com.client
# APPの初期化
for mail in inbox_mails.Items:
print('SenderEmailAddress: ', mail.SenderEmailAddress)
print('SenderName: ', mail.Sender)
print('Subject: ', mail.subject)
print('To: ', mail.To)
print('Cc: ', mail.Cc)
print('ReceivedTime: ', str(mail.receivedtime))
print('Body: ', mail.body)
print('Attachments: ', mail.Attachments)
このコードで読み取ることができた。
わたしは Outlook に
プロバイダーのメール、Hotmail、Yahoo メールなどを複数登録してあるので
メールアドレスが最初のフォルダー名となっているようだ。
とりあえず、Outlook のメールを受信できるようになったが
やりたいのは受信したメールに返信することで
受信内容を編集すればできないことはないが
何か簡単な方法はないかなといま思案している。