ChatGPTでつくった_gmailの添付文書を取得する

 
の続きです。
※ ChatGPTで作ることになった経緯は ↑ 上リンクをご覧ください。
 
ChatGPT でここまで作れます。
 
import imaplib
import email
import os
import quopri
import base64
from email.header import decode_header

def decode_mime_words(s):
    """デコードされたファイル名を取得"""
    decoded_string = ''
    for word, encoding in decode_header(s):
        if encoding == 'base64':
            word = base64.b64decode(word).decode('utf-8')
        elif encoding == 'quoted-printable':
            word = quopri.decodestring(word).decode('utf-8')
        elif encoding is not None:
            word = word.decode(encoding)
        if isinstance(word, bytes):
            word = word.decode('utf-8')
        decoded_string += word
    return decoded_string

# ここで直接値を指定します
EMAIL = 'your-email@gmail.com'
APP_PASSWORD = 'your-app-password'

# 接続とログイン
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(EMAIL, APP_PASSWORD)
mail.select('inbox')

# メールの検索
status, messages = mail.search(None, '(UNSEEN)')
mail_ids = messages[0].split()

# メールごとの処理
for mail_id in mail_ids:
    status, msg_data = mail.fetch(mail_id, '(RFC822)')
    msg = email.message_from_bytes(msg_data[0][1])
   
    for part in msg.walk():
        # 添付ファイルの処理
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue
       
        filename = part.get_filename()
        if filename:
            decoded_filename = decode_mime_words(filename)
           
            if not os.path.isdir('attachments'):
                os.mkdir('attachments')
            filepath = os.path.join('attachments', decoded_filename)
            with open(filepath, 'wb') as f:
                f.write(part.get_payload(decode=True))
            print(f'Successfully downloaded {filepath}')

# 接続を閉じる
mail.logout()

ChatGPTでPythonが作れます。

 gmailに添付されているテキストファイル(AAA.TXT)を 自動プログラムで取得する、という場面に遭遇しました。
Pythonで、、、とかネット検索すると、
Google Cloud のAPIキーを、、、)
IMAPアクセスで、、、)
gmailのセキュリティレベルを低く、、、)
など、ややこしいこと沢山です。
 
ならば、と ChatGPTに頼んでみよう!
私の依頼「pythongmailに添付されたテキストファイルを取得する」
 すぐに ChatGPTから python のコードと、環境設定、ライブラリのインストール方法が示された。
私「そのまま visual studio code にコピペして実行」
 エラーになるので、そのエラーを ChatGPTに質問
「imaplib.IMAP4.error: b'[AUTHENTICATIONFAILED] Invalid credentials」
ChatGPTから、再度の コードが提示される
 エラー と 修正 を 5回ほど繰り返し
💛 完成(^^♪ 
無事動作して、目的の AAA.TXTをパソコンのフォルダにダウンロードできました。
 
ChatGPT やりますね。 エラーになるのは、私のPC状態のせいで、それを連絡すると、できてしまう。
もし ChatGPT の中に私のPCが存在しているなら、最初から動作した。ということになります。
 
今日のTVで、PCに生成AIを搭載した商品化が出ていました。 生成AIは注目しなくっちゃ(^^♪
 
続きはこちら