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.