email versenden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
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.
Gast

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:

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

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:

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

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

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:

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
Antworten