EMail Anhang speichern
Verfasst: Dienstag 12. April 2016, 10:07
Hallo,
ich habe mir neulich eine Raspberry gekauft und auf diesem einen MySQL Server installiert. Nun möchte ich meine Datenbank mit Hilfe von Mail Anhängen verwalten. Hierfür habe ich mir überlegt den Mail Anhang local zu speichern um ihn anschließend in die Datenbank zu übertragen.
Um den Anhang zu speichern habe ich Folgendes Script erstellt:
Das Script an sich speichert mir den Anhang auch ab, aber der Inhalt des Anhangs ist nicht identisch zu dem Originalen.
Ich hoffe Ihr könnt mir bei meinem Problem behilflich sein
Ich Bedanke mich im vorraus
ich habe mir neulich eine Raspberry gekauft und auf diesem einen MySQL Server installiert. Nun möchte ich meine Datenbank mit Hilfe von Mail Anhängen verwalten. Hierfür habe ich mir überlegt den Mail Anhang local zu speichern um ihn anschließend in die Datenbank zu übertragen.
Um den Anhang zu speichern habe ich Folgendes Script erstellt:
Code: Alles auswählen
#!/usr/bin/env python
import poplib
import email
import os
import sys
import string
#
# attsave.py
# Check emails at PROVIDER for attachments and save them to SAVEDIR.
#
#
PROVIDER = "pop3.web.de"
USER = "xy@web.de"
PASSWORD = "xyz"
SAVEDIR = "/home/pi/EmailAnhang"
def saveAttachment(mstring):
filenames = []
attachedcontents = []
msg = email.message_from_string(mstring)
for part in msg.walk():
fn = part.get_filename()
if fn <> None:
filenames.append(fn)
attachedcontents.append(part.get_payload())
for i in range(len(filenames)):
fp = file(SAVEDIR + "/" + filenames[i], "wb")
fp.write(attachedcontents[i])
print 'Found and saved attachment "' + filenames[i] + '".'
fp.close()
try:
client = poplib.POP3_SSL(PROVIDER)
except:
print "Error: Provider not found."
sys.exit(1)
client.user(USER)
client.pass_(PASSWORD)
anzahl_mails = len(client.list()[1])
for i in range(anzahl_mails):
lines = client.retr(i + 1)[1]
mailstring = string.join(lines, "\n")
saveAttachment(mailstring)
client.quit()
Ich hoffe Ihr könnt mir bei meinem Problem behilflich sein

Ich Bedanke mich im vorraus