Startseite | Impressum | Kontakt | Boardregeln | LinkUs | Archiv

yourWBB

yourWBB » Das Proggen ;) » MySQL und PHP » Newsletterscript bricht zusammen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 663 Views | Thema zu Favoriten hinzufügen
(Benutzer im Thema aktiv: 1 Besucher)
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Newsletterscript bricht zusammen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
17.07.09 16:20
Newsletterscript bricht zusammen antworten | zitieren | bearbeiten | melden      [ Top ]
weltenbummler
Mitglied


Dabei seit: 21.12.04
Beiträge: 13

Hi,
ich habe hier ein Newsletterscript, welches allerdings unter der Last von mehr als 4200 Empfängern grad den Geist aufgegeben hat, sprich, ich kann damit nur ne bestimmte Anzahl an Empfänger erreichen beovr der Server aufgibt.

Der Versand läuft über folgenden Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
<?php
    $xml_modulo =   new html_template();
    $xml_modulo->dir    =   '_forms';
    $xml_modulo->path   =   'newsletter.tpl';

    if(isset($_GET['sent']) AND $_GET['sent'] == 'true'){
        $INF    =    'Newsletter wurde erfolgreich versendet!';
        $xml_modulo    =    $INF;
    }elseif(isset($_POST['nlCont'])){
        //send newsletter!
        if(empty($_POST['cc'])){
            $cc    =    'der-Newsletter';
        }else{
            $cc    =    htmlspecialchars($_POST['cc']);
        }

        $getVALIDusers    =    new getmysql();
        $getVALIDusers->sql    =    "SELECT email, prename, lastname, phone, handy, street, housenum, plz, location, country FROM teilnehmer WHERE optin='1'";
        $getVALIDusers->only_ressrc    =    true;
        $getVALIDusers    =    $getVALIDusers->sendrequest();

        if(empty($getVALIDusers)){
            $xml_modulo    =    '<strong>Keine validen User gefunden</strong>';
        }else{
            $mail_header    =    'Content-Type: text/html'."\r\n".'From: domain.de <newsletter@domain.de>';
            $mail_betreff    =    $cc;
            $mail_content    =    $_POST['nlCont'];

            while($sendNL    =    mysql_fetch_object($getVALIDusers)){
                    $LEGEND    =    array(
                                  '{[DB:vorname]}'=>htmlspecialchars(mysql_unescape_string($sendNL->prename)),
                                  '{[DB:nachname]}'=>htmlspecialchars(mysql_unescape_string($sendNL->lastname)),
                                  '{[DB:telefonnummer]}'=>htmlspecialchars(mysql_unescape_string($sendNL->phone)),
                                  '{[DB:handynummer]}'=>htmlspecialchars(mysql_unescape_string($sendNL->handy)),
                                  '{[DB:strasse]}'=>htmlspecialchars(mysql_unescape_string($sendNL->street)),
                                  '{[DB:hausnummer]}'=>htmlspecialchars(mysql_unescape_string($sendNL->housenum)),
                                  '{[DB:postleitzahl]}'=>htmlspecialchars(mysql_unescape_string($sendNL->plz)),
                                  '{[DB:ort]}'=>htmlspecialchars(mysql_unescape_string($sendNL->location)),
                                  '{[DB:land]}'=>htmlspecialchars(mysql_unescape_string($sendNL->country))
                                  );
                    $AC_MAIL_CONTENT    =    $mail_content;
                    foreach($LEGEND AS $legendkey=>$legendcont){
                        $AC_MAIL_CONTENT    =    str_replace($legendkey,$legendcont,$AC_MAIL_CONTENT);
                    }
                if(!@mail($sendNL->email,$mail_betreff,$AC_MAIL_CONTENT,$mail_header)){
                    $errorOnNl    =    true;
                }
            }

            if($errorOnNl    ===    true){
                $xml_modulo    =    'Es sind Fehler beim Versenden aufgetreten.';
            }else{
                header('Location: index.php?action=lplg&plugin=22&sent=true');
            }
        }

    }else{
        //show form
        $xml_modulo    =    $xml_modulo->create();
    }

    $content    =   $xml_modulo;
?>


Mag sich da einer ranwagen?

Gern auch gegen Bezahlung. Mir ist nur wichtig, dass es so umgeschrieben wird, dass keine Probleme mehr beim Versand entstehen, auch nicht, wenn neue User hinzukommen und die Empfängerzahl in 6stellige Dimensionen wächst.

Viele Grüße

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von weltenbummler: 17.07.09 16:21.

  User offline | E-Mail | Suchen | Buddy  
21.07.09 12:56
antworten | zitieren | bearbeiten | melden      [ Top ]
xundy xundy ist männlich
Mitglied


Dabei seit: 16.01.04
Beiträge: 820
Forenversion: 2.3

Du musst den Newsletter in Schelifen versenden a X-Emailempfänger und sich das Script immer wieder selbst aufrufen lassen mit entsprechender Schleifennummer.
So kannst du ein Timeout umgehen, da du ja immer nur X Newsletter auf einmal versendest.

mfg

__________________
Fragen kostet nichts, nicht fragen kann teuer werden!
Messenger  User offline | E-Mail | Homepage | Suchen | Buddy  
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
yourWBB » Das Proggen ;) » MySQL und PHP » Newsletterscript bricht zusammen

Forensoftware: Burning Board 2.3.6 pl 2, entwickelt von WoltLab GmbH