Seite 1 von 1

email versenden

Verfasst: Freitag 21. November 2003, 22:21
von rogen
warum funktioniert bei mir das script nicht

Code: Alles auswählen

import smtplib
server="servername"
empfaenger = "bla@bla.de"
absender = "irgendwo@nirgendwo.de"
betreff = "---"
nachricht = """bla,
blabla...

cu laber."""

msg = "To: %s\n" %empfaenger
msg = msg + "From: %s\n" %absender
msg = msg + "Subject: %s\n\n" %betreff
msg = msg + nachricht
server = smtplib.SMTP (server)
server.sendmail (absender, empfaenger, msg)
server.close ()
: module object has no attribute 'SMTP'

?
smtp server habe ich eingetragen.

Verfasst: Freitag 21. November 2003, 22:21
von Gast
p.s ich habe suse9.0 und python2.3

Verfasst: Samstag 22. November 2003, 04:35
von strogon14
Wenn ich dein Codebeispiel bei mir in den interaktiven Interpreter paste, funktioniert das wunderbar (außer dass ich den Servernamen auf 'localhost' geändert habe).

In der Dokumentation steht übrigens, dass man die Verbindung mit server.quit() schließt.

Python 2.3/Mandrake 9.1

Das einzige, was mir bei deinem Code auffällt, ist, dass du die selbe Variable für das SMTP-Objekt und den Servernamen verwendest. Hast Du da vielleicht das SMTP-Objekt nachträglich wieder überschrieben (was in deinem Beispielcode aber nicht auftaucht)?

Verfasst: Samstag 22. November 2003, 10:57
von rogen
das script kann ich ja einfach so starten oder ? ( ohne webserver)
und als server kann ich ja auch meinen provider nehmen ?

wenn ich das smtplib modul nicht hätte würde er sich ja bei

import smtplib
und nicht bei
server = smtplib.SMTP (server)
beschweren oder ?

Verfasst: Samstag 22. November 2003, 13:50
von strogon14
Ja, wenn du das smtplib Modul nicht hättest, würde Python sich schon beim Import beschweren. smtplib gehört aber zur Standard Library und sollte immer dabei sein.

Ob der Server deines Providers Verbindungen ohne Authentifizierung zulässt, weiß ich nicht.

Bitte poste doch mal die gesamte interaktive Session, mit Aufruf von Python, Fehlermeldung etc.

Dann können wir vielleicht sehen, ob was mit deiner Installation nicht stimmt.

Verfasst: Samstag 22. November 2003, 14:24
von Gast
betta-alpa> python email.py
Traceback (most recent call last):
File "email.py", line 1, in ?
import smtplib
File "/usr/lib/python2.3/smtplib.py", line 49, in ?
from email.base64MIME import encode as encode_base64
File "/media/sda1/hotelprogramm-betta-alpa/email.py", line 15, in ?
server = smtplib.SMTP (server)
AttributeError: 'module' object has no attribute 'SMTP'



smtp.ycn.com funktioniert .

ich habs

Verfasst: Samstag 22. November 2003, 21:58
von rogen
man darf keine datei nach einem modul benennen

ich hab email.py drausgemacht
wenn ich die datei in emails.py umbenenne und die pyc löschen funktioniert es .

ich glaube die smtplib modul importiert das email modul und dann wird meine email.py datei hergenommen.

mfg

Verfasst: Sonntag 23. November 2003, 15:59
von strogon14
Siehste mal, wenn man an Fehler systematisch rangeht, findet man sie meist recht schnell ;-)

Meist reicht es schon, wenn man die Debugging-Ausgaben zusammenstellt, um sie jemand anderes zu schicken. Dann liest man sie nämlich das erste mal richtig ;-)

Ein Tipp noch für Probleme solcher Art: Wenn man Python mit der Option -v aufruft, zeigt es an, welche Module es von woher lädt!

Happy Hacking!

Chris

Verfasst: Sonntag 23. November 2003, 18:45
von rogen
danke für den tip -v