Python und pop --> eMails ohne attachements herunterladen
Verfasst: Sonntag 5. Juli 2009, 22:28
Hallo liebe Python Gemeinde,
ich versuche nun schon seit einiger Zeit mein Mails vom e-Mail Accoount mit pop herunterzuladen. Dies funktioniert eigendlich tadellos. Nun habe ich aber das Proplem, das die Attachements auch heruntergeladen werden, was enorme Zeit benötiht. Da ich das script aber auf einen System herunterladen möchte wo ich nur eine Konsole zur Verfügung habe, bringen mir die Attachements nichts.
Ich bräuchte nur das Datum, die Zeit, den Sender und der Textinhalt von dem Mail.
Den Code welcher ich verwende habe ich in dem Forum gefunden und meinen Bedürfnissen angepasst.
Er Sieht momentan so aus.
Nun glaube ich das der Code msg = email.message_from_string('\n'.join(mailer.retr(num)[1])) die Mails in die Variable msg schreibt.
Habe aber bis anhin nicht herausgefunden, wie ich diese Zeile umschreiben muss, so das die Attachements nicht heruntergeladen werden.
Für einen Tipp bin ich dankbar oder noch besser einen Link zu einer guten Doku über die Python Module POP, POP_SSH, IMAP und IMAP_SSH.
Gruss Alex
ich versuche nun schon seit einiger Zeit mein Mails vom e-Mail Accoount mit pop herunterzuladen. Dies funktioniert eigendlich tadellos. Nun habe ich aber das Proplem, das die Attachements auch heruntergeladen werden, was enorme Zeit benötiht. Da ich das script aber auf einen System herunterladen möchte wo ich nur eine Konsole zur Verfügung habe, bringen mir die Attachements nichts.
Ich bräuchte nur das Datum, die Zeit, den Sender und der Textinhalt von dem Mail.
Den Code welcher ich verwende habe ich in dem Forum gefunden und meinen Bedürfnissen angepasst.
Er Sieht momentan so aus.
Code: Alles auswählen
# -*- coding: UTF-8 -*-
import poplib, email
from email.Utils import parsedate
from datetime import datetime
import base64
def get_emails(server, port, login, passwd, anz_mail):
mails = []
mailer = poplib.POP3(server, int(port))
mailer.user(login)
mailer.pass_(passwd)
status = mailer.stat()
print '---'
print status
print '---'
num = int(status[0])
if num > int(anz_mail):
x = int(anz_mail)
else:
x = num
i = 0
while i < int(x):
print num
msg = email.message_from_string('\n'.join(mailer.retr(num)[1]))
print 'hallo'
date_string = parsedate(msg['Date'])
mail = {}
print 'title'
mail['title'] = msg['Subject']
print 'sender'
mail['sender'] = msg['From']
print 'time'
mail['time'] = '%s:%s:%s' % (date_string[3], date_string[4], date_string[5])
print 'date'
mail['date'] = '%s.%s.%s' % (date_string[2], date_string[1], date_string[0])
#mail['date'] = datetime(date_string[0], date_string[1], date_string[2], date_string[3], date_string[4], date_string[5])
#if msg.is_multipart():
# mail['text'] = msg.get_payload()[0].get_payload()
#else:
# mail['text'] = msg.get_payload()
#print msg.get_charsets()
mails.append(mail)
i = i + 1
num = num - 1
print mails
return mails
Habe aber bis anhin nicht herausgefunden, wie ich diese Zeile umschreiben muss, so das die Attachements nicht heruntergeladen werden.
Für einen Tipp bin ich dankbar oder noch besser einen Link zu einer guten Doku über die Python Module POP, POP_SSH, IMAP und IMAP_SSH.
Gruss Alex