SMTP

Fragen zu Tkinter.
Antworten
.papaya
User
Beiträge: 11
Registriert: Sonntag 27. August 2006, 18:41

Hi,

ich bin ein Newbee in python.
Hab aber ein gutes Buch gelsen und mich im internet mal ein bischen umgeschaut.
Ich hab dann mit Hilfe einen SMTP-Client zusammengebastelt.

Code: Alles auswählen

from Tkinter import *
import tkFileDialog, smtplib, tkMessageBox

class SMTPClient:
    def _init_(self):
        fenster = Tk()
        fenster.title("SMTP-Client Nr.1")
        self.label1=Label(fenster, text="Adresse: ")
        self.label1.grid(row=0, colum=0)
        self.toadrr=Entry(fenster, width=40)
        self.toadrr.grid(row=0, colum=1, pady=5)
        self.label2=Label(fenster, text="Absender: ")
        self.label2,grid(row=1, colum=1, pady=5)
        self.fromaddr=Entry(fenster, width=40)
        self.fromaddr.grid(row=1, colum=1, pady=5
        self.text = Text(fenster, width= 40, height= 10)
        self.text.grid(row=3, colum= 1, pady= 5, padx= 5)
        self.button=Button(fenster, text="Abschicken", command=self.abschicken)
        self.button.grid(row=3, colum=0, padx=5)
        fenster.mainloop()
    def abschicken (self):
        msg = 'From: %s\r\nTO: %s\r\n'\
            % (self.fromaddr.get(), self.toaddr.get())
        msg += 'Subjekt: Test\r\n'\
             + 'MIME-Version: 1.0\r\nContent.type: '\
             + 'text/html\r\n'\
             + 'Content-Transfer-Encoding: '\
             + 'quoted-printable\r\n\r\n'\
             +  self.text.get("1.0", END)
                self.client = smtplib.SMTP('post.mailserver.de')
                self.client.set_debuglevel(1)
                self.client.sendmail(self.fromaddr.get(), self.toaddr.get(), msg)
                self.client.quit()
client = SMTPClient()
Wenn ich das dann über IDLE über RUN starten will kommt ein Fehler.
Invalide Syntax.
Wäre jemand so lieb und würde mir da weiterhelfen?
oder kann man das so gar nicht mit IDLE starten? :oops:
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

bei einver invalid syntax meldung steht immer noch welche zeile, und setze deinen code in die python code "Markierer" macht das ganze lesbarer

Code: Alles auswählen

class SMTPClient:
    def _init_(self):
        fenster = Tk()
        fenster.title("SMTP-Client Nr.1")
        self.label1=Label(fenster, text="Adresse: ")
        self.label1.grid(row=0, colum=0)
        self.toadrr=Entry(fenster, width=40)
        self.toadrr.grid(row=0, colum=1, pady=5)
        self.label2=Label(fenster, text="Absender: ")
        self.label2,grid(row=1, colum=1, pady=5)
        self.fromaddr=Entry(fenster, width=40)
        self.fromaddr.grid(row=1, colum=1, pady=5)
        self.text = Text(fenster, width= 40, height= 10)
        self.text.grid(row=3, colum= 1, pady= 5, padx= 5)
        self.button=Button(fenster, text="Abschicken", command=self.abschicken)
        self.button.grid(row=3, colum=0, padx=5)
        fenster.mainloop()
    def abschicken (self):
        msg = 'From: %s\r\nTO: %s\r\n'\
            % (self.fromaddr.get(), self.toaddr.get())
        msg += 'Subjekt: Test\r\n'\
             + 'MIME-Version: 1.0\r\nContent.type: '\
             + 'text/html\r\n'\
             + 'Content-Transfer-Encoding: '\
             + 'quoted-printable\r\n\r\n'\
             +  self.text.get("1.0", END)
        self.client = smtplib.SMTP('post.mailserver.de')
        self.client.set_debuglevel(1) 
        self.client.sendmail(self.fromaddr.get(), self.toaddr.get(), msg)
        self.client.quit()
client = SMTPClient() 
Du hattest eine Klammer nicht geschlossen und unten bei self.client = smtplib.SMTP .... falsch eingerückt. Sehe zwar kein Fenster oder sonst was aber immerhin kannst du das ganze starten ;)
.papaya
User
Beiträge: 11
Registriert: Sonntag 27. August 2006, 18:41

Cool danke das du dir zeit dafür genommen hast.
Wenn ich den Client nun richtig ausführen will, muss ich es dann erst mit py2exe umwandeln?
.papaya
User
Beiträge: 11
Registriert: Sonntag 27. August 2006, 18:41

Sorry für den doppelpost:

Ich will ja mein Programm auch mal testen.
wenn ich in cmd geh, dort geh ich mit cd .. bis ich in C:\ bin und dann ein gebe passiert das:

C:\>python smtp.py
Der Befehl "python" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

C:\>python smtp.pyw
Der Befehl "python" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

C:\>
Kann mir einer helfen?
Wenn ich auf das Script einen doppelklick mach passiert gar nichts.
Muss das Script an einer bestimmten stelle liegen?
In der SuFu hab ich ein paar Threads gefunden aber das wurde es genau so gemacht, aber es passiert nichts.
Wenn ich in IDLE Run mache passiert auch nichts außer das sich die Python Shell öffnet.
Edit: ich habs selber geschafft. ;)
Allerdings nicht mit diesem Programm.
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Habe zwar keine Ahnung von TK aber so siehts du den Dialo... Den REst musst du dir schon selber zusammen basteln

Code: Alles auswählen

from Tkinter import * 
import smtplib

class SMTPClient:
    def __init__(self):
        fenster = Tk()
        fenster.title("SMTP-Client Nr.1")
        self.label1=Label(fenster, text="Adresse: ")
        self.label1.grid(row=0, column=0)
        self.toadrr=Entry(fenster, width=40)
        self.toadrr.grid(row=0, column=1, pady=5)
        self.label2=Label(fenster, text="Absender: ")
        self.label2.grid(row=1, column=1, pady=5)
        self.fromaddr=Entry(fenster, width=40)
        self.fromaddr.grid(row=1, column=1, pady=5)
        self.text = Text(fenster, width= 40, height= 10)
        self.text.grid(row=3, column= 1, pady= 5, padx= 5)
        self.button=Button(fenster, text="Abschicken", command=self.abschicken)
        self.button.grid(row=3, column=0, padx=5)
        fenster.mainloop()
    def abschicken (self):
        msg = 'From: %s\r\nTO: %s\r\n'\
            % (self.fromaddr.get(), self.toadrr.get())
        msg += 'Subjekt: Test\r\n'\
             + 'MIME-Version: 1.0\r\nContent.type: '\
             + 'text/html\r\n'\
             + 'Content-Transfer-Encoding: '\
             + 'quoted-printable\r\n\r\n'\
             +  self.text.get("1.0", END)
        self.client = smtplib.SMTP('post.mailserver.de')
        self.client.set_debuglevel(1) 
        self.client.sendmail(self.fromaddr.get(), self.toaddr.get(), msg)
        self.client.quit()
if __name__ == '__main__':
    client = SMTPClient() 
Antworten