質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1266閲覧

メールを本文の指定部分をタイトルにして、フォルダに保存したい

Yushishi

総合スコア20

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/07/25 17:38

前提・実現したいこと

Excelで指定した期間のメールの中からタイトルに案件名が入っているメールを取り出し、本文の【面談名】○○というタイトルでメールを指定のフォルダに保存するコードを書こうと考えています。

発生している問題・エラーメッセージ

メールを指定のフォルダに保存しようとすると、下記のエラーが出ます。。。
他のところも間違っているような気がするのですが、ググっても同様のエラーの対処法が出てこず、解決策があれば、ご教示頂けますと幸いです。

File "c:\Users\gerra.vscode\extensions\ms-python.python-2019.6.24221\pythonFiles\ptvsd_launcher.py", line 43, in <module> main(ptvsdArgs) File "c:\Users\gerra.vscode\extensions\ms-python.python-2019.6.24221\pythonFiles\lib\python\ptvsd\__main__.py", line 434, in main run() File "c:\Users\gerra.vscode\extensions\ms-python.python-2019.6.24221\pythonFiles\lib\python\ptvsd\__main__.py", line 312, in run_file runpy.run_path(target, run_name='__main__') File "C:\Users\gerra\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Users\gerra\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\gerra\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "c:\Users\gerra\Desktop\python_lesson\automail4.py", line 36, in <module> message.SaveAsFile(newfolder_path + '\' + foldermake) File "C:\Users\gerra\AppData\Local\Programs\Python\Python37\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__ raise AttributeError("%s.%s" % (self._username_, attr)) AttributeError: <unknown>.SaveAsFile

該当のソースコード

python

1#ステップ1|ライブラリ 2from openpyxl import load_workbook 3import win32com.client 4import datetime 5import os 6 7#ステップ2|所定フォルダ内の「Book1.xlsm」を指定して読み込む 8filepath = r'C:\Users\gerra\Desktop\python_lesson\Outlook_Book1.xlsx' 9wb = load_workbook(filename=filepath) 10ws1 = wb['データ'] 11 12#ステップ3|集計範囲の取得 13startdate=ws1['B2'].value 14enddate=ws1['B3'].value 15 16#ステップ4|Outlookの情報を取得 17outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 18inbox = outlook.GetDefaultFolder(6) 19messages=inbox.Items 20 21#ステップ5|Outlookの添付ファイル保管用フォルダの作成 22now=datetime.datetime.now() 23foldermake=now.strftime("%Y/%m/%d %H:%M:%S") 24foldermake = foldermake.replace("/","-") 25foldermake = foldermake.replace(":","-") 26foldermake = foldermake.replace(" ","-") 27#新しいフォルダを作る必要は無し。 28newfolder_path = r'C:\Users\gerra\Desktop\仕事関連\これまでの資料\【添付資料】' + "メール本文" 29#ステップ6|Outlookの情報を取得 30a=0 31for message in messages: 32 RT=message.ReceivedTime 33 hiduketime = datetime.datetime(RT.year ,RT.month, RT.day, RT.hour, RT.minute, RT.second) 34 if startdate <= hiduketime <= enddate: 35 if "案件名" in message.Subject: 36 message.SaveAsFile(newfolder_path + '\' + foldermake) 37 messagepath = newfolder_path + '\' + foldermake 38 if "面談名" in message.body[0:100]: 39 with open(messagepath,"r") as f: 40 lines = f.readlines() 41 stat = 0 42 for line in lines: 43 if stat == 0: 44 print (line.strip("【面談名】")) 45 stat = 1

試したこと

Googleでエラーコードを検索

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「SaveAsFile」はメールの添付ファイルを保存するときに使用します。
メール自体の保存には「SaveAs」を使用します。

投稿2019/08/01 13:39

meg_

総合スコア10577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問