
import imaplib, email, re
from email.policy import default
from pathlib import Path
creds={}
for line in Path('/opt/data/secrets/.yahoo-credentials').read_text().splitlines():
    if '=' in line:
        k,v=line.split('=',1); creds[k.strip()]=v.strip().strip('"').strip("'")
outdir=Path('/opt/data/tmp/elize_beijing')
outdir.mkdir(parents=True, exist_ok=True)
m=imaplib.IMAP4_SSL('imap.mail.yahoo.com',993); m.login(creds['YAHOO_EMAIL'],creds['YAHOO_APP_PASSWORD']); m.select('INBOX', readonly=True)
st,data=m.fetch('9976','(BODY.PEEK[])')
raw=next(item[1] for item in data if isinstance(item,tuple) and isinstance(item[1],(bytes,bytearray)))
msg=email.message_from_bytes(raw, policy=default)
saved=[]
for part in msg.walk():
    fn=part.get_filename()
    if not fn: continue
    safe=re.sub(r'[^A-Za-z0-9._ -]+','_',fn).strip()
    path=outdir/safe
    path.write_bytes(part.get_payload(decode=True) or b'')
    saved.append(str(path))
print('\n'.join(saved))
m.logout()
