実現したいこと
win32comでoutlookのメールデータを取得してFlaskにてブラウザ上で表示させたいと考えています。
まず、以下は、Flaskを使わない、メールのサブジェクトを取得し出力するプログラムです。
Python
1import win32com.client 2 3outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 4folder = outlook.GetDefaultFolder(6) # 受信トレイ決め打ち 5 6def getMail(): 7 mail_data = [] 8 mails = folder.Items 9 for mail in mails: 10 title = mail.Subject 11 mail_data.append(title) 12 return mail_data 13 14def main(): 15 mail_data = getMail() 16 print(mail_data) 17 18if __name__ == "__main__": 19 main()
ところが、これをFlaskでおこなおうとするとエラーになってしまいました。
Python
1import win32com.client 2from flask import Flask, render_template 3 4outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 5folder = outlook.GetDefaultFolder(6) # 受信トレイ決め打ち 6app = Flask(__name__) 7 8def getMail(): 9 mail_data = [] 10 mails = folder.Items 11 for mail in mails: 12 title = mail.Subject 13 mail_data.append(title) 14 return mail_data 15 16@app.route("/") 17def main(): 18 mail_data = getMail() 19 return render_template("index.html", mail_data = mail_data) 20 21if __name__ == "__main__": 22 app.run(debug=True)
どこをどのように直したらよろしいでしょうか。
発生している問題・エラーメッセージ
上記コードでのエラー
AttributeError: GetDefaultFolder.Items
outlookやfolderの定義を関数内に入れたときのエラー
pywintypes.com_error: CoInitializeは呼び出されていません
回答1件
あなたの回答
tips
プレビュー