email versenden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
rogen

email versenden

Beitragvon rogen » Freitag 21. November 2003, 22:21

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.
Gast

Beitragvon Gast » Freitag 21. November 2003, 22:21

p.s ich habe suse9.0 und python2.3
Benutzeravatar
strogon14
User
Beiträge: 58
Registriert: Sonntag 23. Februar 2003, 19:34
Wohnort: Köln
Kontaktdaten:

Beitragvon strogon14 » Samstag 22. November 2003, 04:35

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)?
rogen

Beitragvon rogen » Samstag 22. November 2003, 10:57

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 ?
Benutzeravatar
strogon14
User
Beiträge: 58
Registriert: Sonntag 23. Februar 2003, 19:34
Wohnort: Köln
Kontaktdaten:

Beitragvon strogon14 » Samstag 22. November 2003, 13:50

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.
Gast

Beitragvon Gast » Samstag 22. November 2003, 14:24

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 .
rogen

ich habs

Beitragvon rogen » Samstag 22. November 2003, 21:58

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
Benutzeravatar
strogon14
User
Beiträge: 58
Registriert: Sonntag 23. Februar 2003, 19:34
Wohnort: Köln
Kontaktdaten:

Beitragvon strogon14 » Sonntag 23. November 2003, 15:59

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
rogen

Beitragvon rogen » Sonntag 23. November 2003, 18:45

danke für den tip -v

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder