in Betreff nach MAÜ suchen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
adrig.04
User
Beiträge: 1
Registriert: Sonntag 19. Februar 2023, 22:05

Moin zusammen,
ich versuche mit meinem Code Email Anhänge zu speichern...
Jedoch kann ich das Wort "MAÜ" in den Anhängen nicht suchen. Wenn ich jedoch MAU eingebe, klappt es... Kann mir jemand helfen?

Code: Alles auswählen

# E-Mails mit dem gesuchten Betreff suchen
typ, data = imap.search(None, 'SUBJECT "MAÜ-Einsatzabschluss"')
for num in data[0].split():
    typ, data = imap.fetch(num, '(RFC822)')
    raw_email = data[0][1]
    email_message = email.message_from_bytes(raw_email)

    # Alle Anhänge in der E-Mail speichern
    for part in email_message.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue
        filename = part.get_filename()
        if filename is not None:
            filepath = os.path.join(save_folder, filename)
            with open(filepath, 'wb') as f:
                f.write(part.get_payload(decode=True))
                print(f'Speichere Anhang "{filename}" in "{save_folder}"')
imonbln
User
Beiträge: 191
Registriert: Freitag 3. Dezember 2021, 17:07

Schei? Encoding

Das Ü wird sicher in der E-Mail anders Encoded als in deinen Suchstring. Daher wird es nicht gefunden. Zum Glück hat imap.search als ersten Parameter ein charset, hier musst du wahrscheinlich nur die richtige codierung eintragen und schon wird alles gefunden.

Generell, das Suchen nach Strings im Subjekt ist immer etwas fuzzy, automatische E-Mails haben meisten X-Header, welche sich besser zum automatischen Weiterverarbeitung eignen. Sieh dir am besten den „Quelltext“ der E-Mail mal ganz genau an, vielleicht findest du einen X-Header auf welchen du einfacher filtern kannst.
Antworten