newsletter script

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • newsletter script

    Ein Hallo an die Gemeinde,

    Habe ein Newsletter Script, das normalerweise auch funktioniert.
    Jetzt ist es aber so, dass ich eine Datenbank mit über 3000 Adressen
    habe, und da funktioniert dass ganze nicht mehr.

    Normalerweise benutze ich folgenden Cade:

    PHP-Code:
     $sql "SELECT * FROM adressen_00 ORDER BY id";
    $result mysql_query($sql);
    while(
    $daten mysql_fetch_array($result)) {

    $empfaenger $daten['email'];  
    $subject $betreff;  // wird per formular übergeben    

    $mail_body  "$text\n";  // $text wird per formular übergeben    
    $absender $mailer;   // $mailer wird per formular übergeben    

    mail("$empfaenger","$subject","$mail_body""From:$absender");
     echo 
    $daten['id'] . 'Mail an  ' $daten['email'] . ' gesendet<br>';    
      } 
     
    ?> 
    Ich habe das Script laufen lassen, und nach ca einer Stunde war noch kein
    Ende in sicht.

    Nach Anfrage an meinen Provider darf ein Script nur 60 Sekunden laufen,
    danach wird es automatisch abgebrochen.

    Wie kann ich es besser machen??
    Die wenigsten Fehltritte begeht man mit den Füssen.

  • #2
    Du musst es als Kopie an die weiteren Adressen verschicken. Eine Kopie machste mit - ich glaube - bcc bei den additional headers. Wie das geht findeste im Manual

    Kommentar


    • #3
      nicht, dass wir schon viele Threads zum Thema haben.

      Aber in der Tat:
      1) BBC
      2) Aufteilen

      Kommentar


      • #4
        Ich hab auch mal irgendwo aufgeschnappt, dass das Timeout nicht für die Konsole gilt und ein Cronjob wäre ein Konsolenaufruf, d.h. du könntest trotzdem noch deine 3000 E-Mails verschicken, wenn du einen Cronjob benutzt, was sowieso praktischer ist, weil du die Skriptausführung dann auf z.B. 4 Uhr nachts setzen kannst, wo es niemanden stört, wenn der Server etwas stockt beim Beantworten der Requests

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          die 4 Zeilen
          $empfaenger = $daten['email'];
          $subject = $betreff; // wird per formular übergeben

          $mail_body = "$text\n"; // $text wird per formular übergeben
          $absender = $mailer; // $mailer wird per formular übergeben

          Kannste Dir eigentlich auch sparen
          und das echo auch

          genauso
          SELECT * FROM adressen_00 ORDER BY id

          Du brauchst nur die email und nicht sortiert.

          und wenn Du alle Adressen ins bcc packst wird nur einmal die Funktion mail() ausgeführt. Du hast ja eh immer die gleiche mail.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Original geschrieben von ghostgambler
            Ich hab auch mal irgendwo aufgeschnappt, dass das Timeout nicht für die Konsole gilt und ein Cronjob wäre ein Konsolenaufruf, d.h. du könntest trotzdem noch deine 3000 E-Mails verschicken, wenn du einen Cronjob benutzt, was sowieso praktischer ist, weil du die Skriptausführung dann auf z.B. 4 Uhr nachts setzen kannst, wo es niemanden stört, wenn der Server etwas stockt beim Beantworten der Requests
            na das bezweifle ich mal...
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              bie der mail()-funktion kannst die empfänger auch per Kommata trennen.


              PHP-Code:
              for ($i=0;$i<count($dbarray);i++)
              {
              $empfänger.=$dbarray[$i][mail];
              $empfänger.=",";

              Kommentar


              • #8
                Original geschrieben von MelloPie
                na das bezweifle ich mal...
                Ich eigentlich auch, aber andererseits, könnte das durchaus wiederum hinkommen...und ich mein, damit kam hier im Forum auch einer mit einem gelben Sternlein an, das ist also nicht auf meinen Mist gewachsen
                Wen es wirklich interessiert, der kann ja mal google durchforsten....ansonsten->Pech

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  bie der mail()-funktion kannst die empfänger auch per Kommata trennen.
                  Na, Klasse idee!!! *kopfschüttel*

                  bei 3000 Empfängern braucht nur ein Spamer dabei zu sein, und schon bekommen 2999 Leute nervige mails. Also von dir möchte ich keine NL bekommen.

                  Kommentar


                  • #10
                    heute is mal wieder die geballte intelligenz unterwegs...
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      Original geschrieben von ghostgambler
                      Ich hab auch mal irgendwo aufgeschnappt, dass das Timeout nicht für die Konsole gilt und ein Cronjob wäre ein Konsolenaufruf, d.h. du könntest trotzdem noch deine 3000 E-Mails verschicken, wenn du einen Cronjob benutzt, was sowieso praktischer ist, weil du die Skriptausführung dann auf z.B. 4 Uhr nachts setzen kannst, wo es niemanden stört, wenn der Server etwas stockt beim Beantworten der Requests
                      So, also das ist richtig. Ich hab gestern zufällig in der Manual die Seite gefunden.
                      Es werden bei der Konsolenausführung einige Einstellungen überschrieben, z.B. das die Fehler nicht als HTML ausgegeben werden, weil man das eh in einer Textdatei nicht "lesen" kann und es wird eben auch die max_execution_time auf 0, also unlimited, gesetzt, wegen der Begründung, dass diese Konsolenskripte, eben meißt dafür sind, etwas über einen längeren Zeitraum zutun...was die unter "längerem Zeitraum" verstehen, weiß ich zwar nicht, aber egal

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Ich hab gestern zufällig in der Manual die Seite gefunden.
                        Hättest du die mal lieber hier gepostet!

                        wegen der Begründung, dass diese Konsolenskripte, eben meißt dafür sind, etwas über einen längeren Zeitraum zutun...
                        Viel Spaß auf Shared-Hosting

                        Kommentar


                        • #13
                          Original geschrieben von TobiaZ
                          Hättest du die mal lieber hier gepostet!
                          Hatte ich erwähnt, dass ich sie in der *.chm-Datei auf meinem lokalen Rechner gefunden hatte? ¬_¬

                          *suchsuch*
                          http://www.php.net/manual/de/feature...ne.php#AEN6546
                          da, zufrieden?

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar

                          Lädt...
                          X