Probleme beim Speichern von Anhängen via phyton

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
Bene1991
User
Beiträge: 4
Registriert: Donnerstag 25. April 2019, 16:08

Hallo Liebe Gemeinde,

ich möchte gerne Emails via Python abrufen und die Anhänge speichern, diese sollen dann durch ein cron job gedruckt werden.
Das Script habe ich hier im Forum gefunden jedoch erhalte ich beim ausführen folgenden Fehler:

Code: Alles auswählen

/Users/benediktschulz/PycharmProjects/untitled/venv/bin/python /Users/benediktschulz/PycharmProjects/untitled/test
Traceback (most recent call last):
  File "/Users/benediktschulz/PycharmProjects/untitled/test", line 38, in <module>
    main()
  File "/Users/benediktschulz/PycharmProjects/untitled/test", line 32, in main
    save_attachments('\Users'.join(client.retr(message_number)[1]))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/poplib.py", line 232, in retr
    return self._longcmd('RETR %s' % which)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/poplib.py", line 167, in _longcmd
    return self._getlongresp()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/poplib.py", line 143, in _getlongresp
    resp = self._getresp()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/poplib.py", line 136, in _getresp
    raise error_proto(resp)
poplib.error_proto: -ERR Noise after message number:  126533

Process finished with exit code 1
Das Hier ist der Code dazu:

Code: Alles auswählen

from __future__ import absolute_import, division, print_function
import email
import os
import poplib

PROVIDER = 'pop.server.de'
USER = 'xxx@xxx.de'
PASSWORD = '12345677'

SAVE_DIR = '/Users/benediktschulz/'


def save_attachments(mail_string):
    attachments = list()
    for part in email.message_from_string(mail_string).walk():
        filename = part.get_filename()
        if filename:
            attachments.append((filename, part.get_payload(decode = True)))

    for filename, content in attachments:
        with open(os.path.join(SAVE_DIR, filename), 'wb') as attachment_file:
            attachment_file.write(content)
        print('Found and saved attachment {0!r}.'.format(filename))


def main():
    try:
        client = poplib.POP3_SSL(PROVIDER)
        client.user(USER)
        client.pass_(PASSWORD)
        for message_number in client.list()[1]:
            save_attachments('\Users'.join(client.retr(message_number)[1]))
    finally:
        client.quit()


if __name__ == '__main__':
    main()
Ich hoffe könnt mir helfen, vielen Dank im Vorraus.
Bene1991
User
Beiträge: 4
Registriert: Donnerstag 25. April 2019, 16:08

Habe das ganze jetzt auf meinen RasberryPi übertragen, hier kommt beim ausführen Folgende Fehlermeldung:
Invalid message number: b1´1 126533

Liebe und vielen Dank schonmal
Benutzeravatar
__blackjack__
User
Beiträge: 14042
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wie sieht denn das Ergebnis von dem `client.list()`-Aufruf aus?
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten