Seite 1 von 1
eMail Absender herausfinden
Verfasst: Donnerstag 8. November 2007, 19:02
von _D4rk_
Hi zu allen,
gibt es eine Funktion/Klasse um den Absender einer eMail heraus zu finden?
Um genau zu sein fuer ein eMail die mit poplib ausgelesen wurde.
Beispiel:
Code: Alles auswählen
import poplib
popserver = 'xxx'
popuser = 'xxx'
poppasswd = 'xxx'
def mail_hollen(popserver, popuser, poppasswd):
connect = poplib.POP3(popserver)
print connect.getwelcome()
print connect.user(popuser)
print connect.pass_(poppasswd)
print connect.list()
header, message, octets = connect.retr(1)
print connect.quit()
return message
def auswerten(message):
print 'Die Mail wird ausgewertet!'
def main():
message = mail_hollen(popserver, popuser, poppasswd)
auswerten(message)
main()
danke im voraus
//EDIT: Wenn ihr etwas an meinem Style zu kritisieren habt immer raus damit.
Re: eMail Absender herausfinden
Verfasst: Donnerstag 8. November 2007, 20:17
von gerold
_D4rk_ hat geschrieben:gibt es eine Funktion/Klasse um den Absender einer eMail heraus zu finden?
Hallo D4rk!
Willkommen im Python-Forum!
Das dürfte selbsterklärend sein:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import email
mailstring = \
"""From: "Absender" <absender@bcom.at>
To: "Empfaenger" <empfaenger@bcom.at>
BlaBlaBla"""
mail = email.message_from_string(mailstring)
print dir(mail)
print mail.get("from")
print mail.items()
mfg
Gerold

Verfasst: Donnerstag 8. November 2007, 21:44
von _D4rk_
Hallo gerold!
jop ist selbsterklärend, dank dir :-)
[hidden=100%]
@Offtopic Ein schönes Forum habt ihr hier.
[/hidden]
Verfasst: Freitag 9. November 2007, 15:59
von _D4rk_
Hi,
noch eine kleine frage:
Wenn ich das mit der aktiven Konsole mache funktioniert das ohne Probleme. Wenn ich das aber in einer Datei mache (.py) dann mekert er...
Warum? (und was ist "das"?)
Ist Zustand:
Der compieler gibt ein Fehler aus.
Fehlercode:
Code: Alles auswählen
Traceback (most recent call last):
File "PFAD_ZUR_DATEI\DATEI.py", line 2, in <module>
import email
File "PFAD_ZUR_DATEI\DATEI.py", line 18, in <module>
mail = email.message_from_string(str(msg))
AttributeError: 'module' object has no attribute 'message_from_string'
Soll Zustand:
Der Fehler soll nicht mehr auftreten und das Programm ordentlich ausgeführt sowie beendet werden.
Auf den Fehler reduzierte Variante des Source:
Code: Alles auswählen
"""
Dies ist eine reduzierte Version meines Programms also nicht über den stiel mekern
"""
import poplib
import email #<- Zeile 2
popserver = 'xxx'
popuser = 'xxxx'
poppasswd = 'xxx'
connect = poplib.POP3(popserver)
print connect.getwelcome()
print connect.user(popuser)
print connect.pass_(poppasswd)
print connect.list()
header, msg, octets = connect.retr(1)
mail = email.message_from_string(str(msg)) #<- Zeile 18
print dir(msg)
print mail.get("from")
print mail.items()
connect.quit()
Verfasst: Freitag 9. November 2007, 16:18
von Rebecca
Hast du zufaellig eine Datei namens email.py (email.pyc) in dem Verzeichnis liegen bzw. hast du dein Programm so genannt?
Verfasst: Freitag 9. November 2007, 16:24
von gerold
_D4rk_ hat geschrieben:Code: Alles auswählen
Traceback (most recent call last):
File "PFAD_ZUR_DATEI\DATEI.py", line 2, in <module>
import email
File "PFAD_ZUR_DATEI\DATEI.py", line 18, in <module>
mail = email.message_from_string(str(msg))
AttributeError: 'module' object has no attribute 'message_from_string'
Hallo D4rk!
Genau das, was du mit "PFAD_ZUR_DATEI\DATEI.py" maskierst, könnte dein Problem sein. Ein Modul darf nie so heißen, wie ein eingebautes Python-Modul.
mfg
Gerold

Verfasst: Freitag 9. November 2007, 16:30
von _D4rk_
die Datei heißt email.py, darauf muss man erst einmal kommen.
dank euch nochmals.