前提・実現したいこと
pythonのimaplibのstoreオブジェクトを使用してメールを削除したいです。
プログラム全体としては特定のフォルダにある最新メールを1件取得し、その後削除する、といったものにする予定です。
公式ドキュメントにある以下のように実装していますがエラーが発生してしまっています。
typ, data = M.search(None, 'ALL') for num in data[0].split(): M.store(num, '+FLAGS', '\Deleted') M.expunge()
発生している問題・エラーメッセージ
[b"[CANNOT] STORE It's not possible to perform specified operation"]
該当のソースコード
python
1imapclient.select(mailbox='test1') # メールボックスの選択 2typ, data = imapclient.search(None, "ALL") # data = [b"1 2 3 4 ..."] 3datas = data[0].split() 4fetch_num = 1 # 取得したいメッセージの数 5if (len(datas)-fetch_num) < 0: 6 fetch_num = len(datas) 7msg_list = [] # 取得したMIMEメッセージを格納するリスト 8 9for num in datas[len(datas)-fetch_num::]: 10 typ, data = imapclient.fetch(num, '(RFC822)') 11 typ, delete_result = imapclient.store(num, '+FLAGS', '\Deleted') 12 # エラーメッセージは以下のprintで出力したもの。 13 print(delete_result) 14 msg = email.message_from_bytes(data[0][1]) 15 msg_list.append(msg) 16imapclient.expunge() 17imapclient.close() 18imapclient.logout()
試したこと
メールのフォルダを確認しても消えていなかったので結果として何を出力しているか確認しました。
エラー内容でググってもピンとくるものが見つからず、ここで質問させてもらいました。
補足情報(FW/ツールのバージョンなど)
Python 3.6.3 :: Anaconda, Inc.
メール:Yahoo メール
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。