Massen E-Mail Programm - nur 10-20 Mails?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Naelo
User
Beiträge: 1
Registriert: Dienstag 17. Mai 2011, 16:09

Hallo!

Ich habe ein Problem mit SMTPLib.
Das Programm, dass ich geschrieben habe, soll 4000+ Emails über einen SMTP-Server versenden.
Jede Email soll personalisiert sein (nur 1 Empfänger).
Problem: Es stoppt nach 10-20 Mails, ohne Fehler.

Auf Nachfrage beim Provider sagten die Server Admins, diesbezüglich bestehe kein Limit.

Ich poste hier einfach mal die relevanten Code-Teile.
Könnt ihr mir vielleicht helfen? Ich verzweifle bereits an einer Python-Lösung:

Email-Funktion:

Code: Alles auswählen

def sendhtmlmail(sender,empfaenger,html,betreff,smtpserver):
    # me == my email address
    # you == recipient's email address
    me = sender
    you = empfaenger
    
    # Create message container - the correct MIME type is multipart/alternative.
    msg = MIMEMultipart('alternative')
    msg['Subject'] = betreff
    msg['From'] = me
    msg['To'] = you

    # Create the body of the message (a plain-text and an HTML version).
    text = "Du brauchst zum Anzeigen ein HTML-faehiges EMail-Programm."
    html = html

    # Record the MIME types of both parts - text/plain and text/html.
    part1 = MIMEText(text, 'plain')
    part2 = MIMEText(html, 'html')

    # Attach parts into message container.
    # According to RFC 2046, the last part of a multipart message, in this case
    # the HTML message, is best and preferred.
    msg.attach(part1)
    msg.attach(part2)

    # Send the message via local SMTP server.
    s = smtpserver
    # sendmail function takes 3 arguments: sender's address, recipient's address
    # and message to send - here it is sent as one string.
    s.sendmail(me, you, msg.as_string())


Die Schleife:

Code: Alles auswählen

            // GUI Listbox zur Auflistung des Status
            self.progressbox = Tkinter.Listbox(self.main)
            self.progressbox.pack()
            // Zum Server verbinden
            self.server = smtplib.SMTP(self.serverdata[0])
            self.server.login(self.serverdata[1],self.serverdata[2])
            // Mails versenden
            for i in self.adressen:
                aktuellemail = self.adressen.index(i)+1

                self.progressbox.insert(Tkinter.END,"Mail "+str(aktuellemail)+" von "+str(len(self.adressen))+" wird versendet")
                // Hier macht es dann nach 10-20 Mails nichts mehr!
                sendhtmlmail(self.serverdata[3],i,self.htmlcontent,self.betreff,self.server)
            // Verbindung schliessen
            self.server.close()

mfg
BlackJack

@Naelo: Macht das Programm *tatsächlich* nichts mehr oder wird das einfach nur nicht angezeigt? Solange der Versand läuft wird die GUI ja nicht aktualisiert.

Eine Laufvariable `i` an etwas anderes als ganze Zahlen zu binden ist übrigens keine gute Idee. Das verwirrt ziemlich viele Leser. An der Stelle möchtest Du Dir vielleicht auch mal die `enumerate()`-Funktion anschauen.
Antworten