Probleme beim Speichern von Anhängen via phyton
Verfasst: Donnerstag 25. April 2019, 16:24
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:
Das Hier ist der Code dazu:
Ich hoffe könnt mir helfen, vielen Dank im Vorraus.
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
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()