Seite 1 von 2

E-Mail Bomber mit Python

Verfasst: Samstag 6. März 2010, 19:44
von andy885
Hallo
Ich versuche aus Test Zwecken einen E-Mail Bomber zu schreiben.
Doch er funktioniert nicht. Er versendet einfach keine Mails.
Könnt ihr mir helfen?

Danke schon mal.

Mfg Andi

Code: Alles auswählen

from Tkinter import *
import smtplib
import time
from tkMessageBox import *

root=Tk()
root.title("E-mail Bomber by Andi")
root.config(bg="black")

gesendet=0

def bomb():
    anzahl=e6.get()
    for i in range(0, int(anzahl), 1):
        mailserver=e4.get()
        e2get=e2.get()
        e1get=e1.get()
        e3get=e3.get()
        e5get=e5.get(END)
        absender=(e2get)
        adressat=(e1get)
        betreff=(e3get)
        inhalt=(e5get)
        text=inhalt
        fehler=1
        while(fehler==1):
            try:
                server=smtplib.SMTP(mailserver)
                fehler=0
            except:
                showinfo(title="Fehler!", message="Es konnte keine Verbindung zum Mailserver hergestellt werden!")
                break
        zeit=time.ctime(time.time())
        text='From:'+absender+'\n'
        text +='To:'+adressat+'\n'
        text +='Date:'+zeit+'\n'
        text +='Subject:'+betreff+'\n'
        server.set_debuglevel(1)
        server.sendmail(absender, adressat, text)
        gesendet=gesendet+1
    server.quit()
    if(anzahl>0):
        showinfo(title="Fertig!", message="Die Mails wurden gesendet!")
                
    

l1=Label(root, text="Empfaenger:", bg="black", fg="red")
l1.grid(row=0)
l2=Label(root, text="Absender:", bg="black", fg="red")
l2.grid(row=1)
l3=Label(root, text="Betreff:", bg="black", fg="red")
l3.grid(row=2)
l4=Label(root, text="Mailserver:", bg="black", fg="red")
l4.grid(row=3)
l5=Label(root, text="Text:", bg="black", fg="red")
l5.grid(row=4)
l6=Label(root, text="Anzahl", bg="black", fg="red")
l6.grid(row=5)
l7=Label(root, text="Gesendet", bg="black", fg="red")
l7.grid(row=6)
e1=Entry(root, relief="ridge", bg="black", fg="red")
e1.grid(row=0, column=1, ipadx=20, padx=4, pady=2)
e1.insert(0, "Lotsen@aol.com")
e2=Entry(root, relief="ridge", bg="black", fg="red")
e2.grid(row=1, column=1, ipadx=20, padx=4, pady=2)
e2.insert(0, "BillG@microsoft.com")
e3=Entry(root, relief="ridge", bg="black", fg="red")
e3.grid(row=2, column=1, ipadx=20, padx=4, pady=2)
e3.insert(0, "Fuck you!!!")
e4=Entry(root, relief="ridge", bg="black", fg="red")
e4.grid(row=3, column=1, ipadx=20,  pady=1)
e4.insert(0, "mail.uniserve.com")
e5=Text(root, relief="ridge", bg="black", fg="red", height=5, width=20)
e5.grid(row=4, column=1, padx=4, pady=2)
e5.insert(END, "You have been Mailbombed! Hahaha")
e6=Entry(root, relief="ridge", bg="black", fg="red")
e6.grid(row=5, column=1, ipadx=20, pady=1)
e6.insert(END, "1")
e7=Entry(root, relief="ridge", bg="black", fg="red")
e7.grid(row=6, column=1, ipadx=20, pady=1)
e7.insert(0, gesendet)
b1=Button(root, text="Bomben", command=bomb, bg="black", fg="red")
b1.grid(row=6, padx=4, pady=2)

root.mainloop()

Verfasst: Samstag 6. März 2010, 22:27
von problembär
Dies ist die Tkinter-Rubrik, wo ist also Deine GUI-Frage?

Eigentlich möchte ich auch nicht bei sowas helfen, am Ende benutzt Du das noch.

Verfasst: Sonntag 7. März 2010, 00:19
von EyDu
Hallo und willkommen im Forum!

Also erstmal solltest du deinen Code ein wenig aufräumen:
- Das Python-Tutorial und PEP8 durchlesen
- Weg mit den *-Importen
- Keine Durchnummerierung von Namen. Wenn du das tust, dann willst du Listen/Tupel und Schleifen
- Die Klammern bei den if- und while-Statements entfernen
- Vernünftig mit Exceptions umgehen
- True und False benutzen
- Python-Code-Tags hier im Forum benutzen

Sebastian

Verfasst: Sonntag 7. März 2010, 01:53
von problembär
@EyDu: Findest Du so einen Email-Bomber ok (sei es nun zu Testzwecken oder nicht)?

Verfasst: Sonntag 7. März 2010, 02:20
von EyDu
Ich habe keine Probleme damit.

Verfasst: Sonntag 7. März 2010, 10:20
von andy885
Danke EyDu
Ich habe ja gar nicht gewusst was ich alles Falsch mache.
Ich habe meinen code jetzt geändert wie du gesagt hast.
Nur weiß ich nicht was an den Exceptions nicht passt und wo ich True or False benutzen sollte.

Der veränderte code:

Code: Alles auswählen

import Tkinter
import smtplib
import time
import tkMessageBox

root=Tkinter.Tk()
root.title("E-mail Bomber by Andi")
root.config(bg = "black")

gesendet = 0

def bomb():
    anzahl = eanzahl.get()
    for i in range(0, int(anzahl), 1):
        mailserver = emailserver.get()
        absender = eabsender.get()
        empfaenger = eempfaenger.get()
        betreff = ebetreff.get()
        text = etext.get(0.0)
        fehler = 1
        while fehler == 1:
            try:
                server = smtplib.SMTP(mailserver)
                fehler = 0
            except:
                tkMessageBox.showinfo(title = "Fehler!",
                         message = """Es konnte keine Verbindung zum
                                      Mailserver hergestellt werden!""")
                break
            fehler = 1
            while fehler == 1:
                try:
                    zeit = time.ctime(time.time())
                    text = 'From:' + absender + '\n'
                    text += 'To:'+empfaenger + '\n'
                    text += 'Date:' + zeit + '\n'
                    text += 'Subject:' + betreff + '\n'
                    server.set_debuglevel(1)
                    server.sendmail(absender, adressat, text)
                    gesendet = gesendet + 1
                    server.quit()
                    if gesendet == anzahl:
                        tkMessageBox.showinfo(title = "Fertig!",
                                 message = "Die Mails wurden gesendet!")
                    fehler = 0
                except:
                    tkMessageBox.showinfo(title = "Fehler!",
                             message = """Beim senden ist ein Fehler
                                          aufgetreten!""")    
                    break
                break
            break

lempfaenger = Tkinter.Label(root, text = "Empfaenger:", bg = "black",
                            fg = "red")
lempfaenger.grid(row = 0)
labsender = Tkinter.Label(root, text = "Absender:", bg = "black", fg = "red")
labsender.grid(row=1)
lbetreff = Tkinter.Label(root, text = "Betreff:", bg = "black", fg = "red")
lbetreff.grid(row = 2)
lmailserver = Tkinter.Label(root, text = "Mailserver:", bg = "black",
                            fg = "red")
lmailserver.grid(row = 3)
ltext = Tkinter.Label(root, text = "Text:", bg = "black", fg = "red")
ltext.grid(row = 4)
lanzahl = Tkinter.Label(root, text = "Anzahl", bg = "black", fg = "red")
lanzahl.grid(row=5)
lgesendet = Tkinter.Label(root, text = "Gesendet", bg = "black", fg = "red")
lgesendet.grid(row = 6)
eempfaenger = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
eempfaenger.grid(row = 0, column = 1, ipadx = 20, padx = 4, pady = 2)
eempfaenger.insert(0, "Lotsen@aol.com")
eabsender = Tkinter.Entry(root, relief="ridge", bg="black", fg="red")
eabsender.grid(row = 1, column = 1, ipadx = 20, padx = 4, pady = 2)
eabsender.insert(0, "BillG@microsoft.com")
ebetreff = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
ebetreff.grid(row = 2, column = 1, ipadx = 20, padx = 4, pady = 2)
ebetreff.insert(0, "Fuck you!!!")
emailserver = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
emailserver.grid(row = 3, column = 1, ipadx = 20,  pady = 1)
emailserver.insert(0, "mail.uniserve.com")
etext = Tkinter.Text(root, relief = "ridge", bg = "black", fg = "red",
                     height = 5, width = 20)
etext.grid(row = 4, column = 1, padx = 4, pady = 2)
etext.insert(0.0, "You have been Mailbombed! Hahaha")
eanzahl = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
eanzahl.grid(row = 5, column = 1, ipadx = 20, pady = 1)
eanzahl.insert(0, "1")
egesendet = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
egesendet.grid(row = 6, column = 1, ipadx = 20, pady = 1)
egesendet.insert(0, gesendet)
bomben = Tkinter.Button(root, text = "Bomben", command = bomb, bg = "black",
                        fg = "red")
bomben.grid(row = 6, padx = 4, pady = 2)

root.mainloop()

Verfasst: Sonntag 7. März 2010, 11:34
von Leonidas
Du nutzt immer noch keine Python-Tags, fängst Exceptions ohne konkrete Ausnahme ab, hast Code auf Modulebene und nutzt zudem ungarische Notation die sinnlos ist.

Verfasst: Sonntag 7. März 2010, 14:27
von andy885
Ich habe jetzt einiges geändert nur funktioniert jetzt get() nicht mehr.
Um die Exceptions kümmere ich mich später darum habe ich sie entfernt.

Code: Alles auswählen

import Tkinter
import smtplib
import time
import tkMessageBox

def bomb():
    gesendetemails = 0
    anzahlmails = anzahl.get()
    sender = absender.get()
    empfang = empfaenger.get()
    for i in range(0, int(anzahlmails), 1):
        server = smtplib.SMTP(mailserver.get())
        server.ehlo()
        zeit = time.ctime(time.time())
        text = 'From:' + sender + '\n'
        text += 'To:'+ empfang + '\n'
        text += 'Date:' + zeit + '\n'
        text += 'Subject:' + betreff.get() + '\n'
        text += 'Text: ' + textfeld.get(0.0)
        server.set_debuglevel(1)
        server.sendmail(sender, empfang, text)
        gesendetemails = gesendetemails + 1
        server.quit()
        if gesendet == anzahl:
            tkMessageBox.showinfo(title = "Fertig!",
                                  message = "Die Mails wurden gesendet!")

def main():
    root = Tkinter.Tk()
    root.title("E-mail Bomber by Andi")
    root.config(bg = "black")
            
    empfaengerLabel = Tkinter.Label(root, text = "Empfaenger:", bg = "black", fg = "red")
    empfaengerLabel.grid(row = 0)
    absenderLabel = Tkinter.Label(root, text = "Absender:", bg = "black", fg = "red")
    absenderLabel.grid(row=1)
    betreffLabel = Tkinter.Label(root, text = "Betreff:", bg = "black", fg = "red")
    betreffLabel.grid(row = 2)
    mailserverLabel = Tkinter.Label(root, text = "Mailserver:", bg = "black", fg = "red")
    mailserverLabel.grid(row = 3)
    textLabel = Tkinter.Label(root, text = "Text:", bg = "black", fg = "red")
    textLabel.grid(row = 4)
    anzahlLabel = Tkinter.Label(root, text = "Anzahl", bg = "black", fg = "red")
    anzahlLabel.grid(row=5)
    gesendetLabel = Tkinter.Label(root, text = "Gesendet", bg = "black", fg = "red")
    gesendetLabel.grid(row = 6)
    empfaenger = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
    empfaenger.grid(row = 0, column = 1, ipadx = 20, padx = 4, pady = 2)
    empfaenger.insert(0, "Lotsen@aol.com")
    absender = Tkinter.Entry(root, relief="ridge", bg="black", fg="red")    
    absender.grid(row = 1, column = 1, ipadx = 20, padx = 4, pady = 2)
    absender.insert(0, "BillG@microsoft.com")
    betreff = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
    betreff.grid(row = 2, column = 1, ipadx = 20, padx = 4, pady = 2)
    betreff.insert(0, "Fuck you!!!")
    mailserver = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
    mailserver.grid(row = 3, column = 1, ipadx = 20,  pady = 1)
    mailserver.insert(0, "mail.uniserve.com")
    textfeld = Tkinter.Text(root, relief = "ridge", bg = "black", fg = "red", height = 5, width = 20)
    textfeld.grid(row = 4, column = 1, padx = 4, pady = 2)
    textfeld.insert(0.0, "You have been Mailbombed! Hahaha")
    anzahl = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
    anzahl.grid(row = 5, column = 1, ipadx = 20, pady = 1)
    anzahl.insert(0, "1")
    gesendet = Tkinter.Entry(root, relief = "ridge", bg = "black", fg = "red")
    gesendet.grid(row = 6, column = 1, ipadx = 20, pady = 1)
    gesendet.insert(0, "0")
    bomben = Tkinter.Button(root, text = "Bomben", command = bomb, bg = "black", fg = "red")
    bomben.grid(row = 7, padx = 4, pady = 2)

if __name__ == "__main__":
    main()

Verfasst: Sonntag 7. März 2010, 14:29
von Defnull
Du solltest das Programm vielleicht erst einmal ohne GUI zum laufen bringen und dann erst die GUI drum rum bauen.

Verfasst: Sonntag 7. März 2010, 14:44
von andy885
Ja danke ich werde es wohl so machen müssen

Verfasst: Sonntag 7. März 2010, 19:24
von problembär
Es wäre kein Problem, das Programm zum Laufen zu bringen, ich helf' Dir dabei aber nicht.

Kannst Du nicht was freundlicheres, konstruktiveres schreiben?

Verfasst: Sonntag 7. März 2010, 20:19
von andy885
Das ist ja nur zur Übung, du hast ja meinen Code am Anfang gesehen.
Außerdem habe ich keinen Plan was ich sonst schreiben könnte.
Hast du vielleicht eine Idee was ich schreiben könnte ich bin ja noch Anfänger.

Mfg Andi

Verfasst: Sonntag 7. März 2010, 22:00
von DeKugelschieber
Es reicht ja wohl wenn du erstmal eine E-Mail verschickst, z.b. für eine registration. und das dann am besten in eine klasse dann kannst du das auch immer wiederverwenden

Verfasst: Sonntag 7. März 2010, 22:31
von andy885
Auch wenn es euch nicht gefällt ich versuche es so lange bis es funktioniert.

Mit SMTP hat es nicht funktioniert da vom server immer ein fehler kam.
Darum versuche ich es jetzt mit IMAP und ich bin schon fast fertig

Verfasst: Sonntag 7. März 2010, 22:54
von Leonidas
Also mit IMAP wirst du ziemlich sicher keine Mails schicken können...

Verfasst: Sonntag 7. März 2010, 23:03
von numerix
andy885 hat geschrieben:Außerdem habe ich keinen Plan was ich sonst schreiben könnte.
Hast du vielleicht eine Idee was ich schreiben könnte ich bin ja noch Anfänger.
http://www.python-forum.de/topic-22020.html

Verfasst: Montag 8. März 2010, 14:44
von andy885
Aber für was ist dann IMAP4.send() ?

Verfasst: Montag 8. März 2010, 15:20
von Leonidas
andy885 hat geschrieben:Aber für was ist dann IMAP4.send() ?
So wie ich die Dokumentation verstehe ist das um Mails auf den IMAP-Server zu schicken. Der verstaut dann die Mails in der Mailbox des angemeldeten Users. So gesehen kannst du damit dir selbst Mails "senden". Habe Zweifel daran, dass es das ist was du machen willst.

Verfasst: Montag 8. März 2010, 15:58
von problembär
Leonidas hat geschrieben:So gesehen kannst du damit dir selbst Mails "senden". Habe Zweifel daran, dass es das ist was du machen willst.
Graf Zahl hat sich manchmal selbst Briefe geschrieben, um sie dann zu zählen :P .

Verfasst: Montag 8. März 2010, 18:30
von andy885
Danke für die antwort
Das habe ich nicht gewusst
Es wird wohl nichts mit dem Bomber

Danke an alle für ihre Antworten.

Mfg Andi