+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Mails in 100er Schritten nach und nach versenden

  1. #1
    TP-Junior MaxPayne macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Beiträge
    27

    Mails in 100er Schritten nach und nach versenden

    Hi an Alle,

    es gibt mal wieder ein simples Problem zu lösen ...

    Ich habe ne Datenbank, die mit ca. 1000 Datensätzen gefüttert ist und wo zu jedem Datensatz eine E-Mail verschickt werden soll; Name, Vorname usw.

    Dazu möchte ich dass bei der ersten E-Mail die Zahl 0, bei der Zweiten die Zahl 1 usw. angezeigt wird.

    Ok, ist ja alles kein Problem, hat man ja schnell mit ner for-Schleife gelöst ...
    Nur ergibt sich eben das Problem, dass der Mailserver wahrscheinlich keine 1000 Mails auf einmal durchlassen wird und das Script bei so ner langen Laufzeit vielleicht auch schon nen Timeout erfährt.

    Nun meine Frage: Wie stelle ich es an den Vorgang z.B. in 100ter Schritte zu unterteilen und trotzdem noch die Zahl von 0-1000 beizubehalten?

    Gibt's vielleicht ne Möglichkeit die for-Schleife bei ner bestimmten Bedingung mal für 60sec oder so zu unterbrechen?

    Wäre cool wenn's ne einfache Lösung für das Problem gäbe ...

    cu Yannick

    Add:

    Achja, der Quellcode sieht bislang übrigens so aus:
    PHP-Code:
    <?

        
    include('var.inc.php');
        
    $conn =  mysql_connect($dbserver,$dbuser,$dbpass); 
          
    mysql_select_db($dbname,$conn); 
        
    $query "SELECT * FROM testgewinn ORDER BY id"
        
    $result =  mysql_query($query,$conn); 
        
    $gesamt =  mysql_num_rows($result); 

        for(
    $i=0$i<$gesamt$i++)
            {
                
    $Titel mysql_result($result$i"Titel");
                
    $Vorname mysql_result($result$i"Vorname");
                
    $Nachname mysql_result($result$i"Nachname");
                
    $EMail mysql_result($result$i"email");
                
    mail($EMail,"Betreff",
                
    "<html>Sehr geehrte/r $Titel $Vorname $Nachname,
                auf Grund Ihrer ...</html>"

                
    "Wrom: ADRZFSQHYUCDDJBLVLMHAALPTCXLYRWTQTIPWIGYOKSTTZRCL
            }
        if($i == $gesamt)
            echo "
    Alles ok!";
        else
            echo "
    Da war nen Fehler!";
            
        mysql_close($conn)
    ?>
    Irgendwie mag er die Zeile mit dem From hier im Forum nich, aber auch egal ...
    Geändert von MaxPayne (25.10.2002 um 14:04 Uhr)

  2. #2
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Hi !!

    Du baust dir eine Seite, die sich nach ein paar Sekunden immerwieder selber aufruft. Dem Aufruf reichst du einfach die Variablen, per GET mit.

    Also mal ganz grob:
    Code:
    // Ist i vorhanden? Wenn false -> setze i auf 0 (Null)
    
    // Ist Offset vorhanden? wenn false -> setze $offset = 0
    
    // Fahre jetzt deinen DB-Query mit Limit-Angaben: "SELECT ... LIMIT 100,$offset"
    
    // dann eine while-schleife, inderdu am ende i ebenfalls um 1 erhöhst. 
    // Hier baust und versendest Du deine Emails
    // Wenn die Schleife durch ist, starte sich das Script von neuem ...usw...usw.. musst natürlich noch irgendwo einen Abrruch einbauen ;)
    
    // Du musst $offset und $i per GET übergeben.
    Gruss Jan

  3. #3
    TP-Junior MaxPayne macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Beiträge
    27
    Hi,
    hört sich ja schon recht geil an, vom Prinzip hab ich's auch schon verstanden ...

    Nur kenn' ich mich mit Offset und der Variablenübergabe bzw. refresh des Scripts noch nicht aus ...

    Gibt's da vielleicht ne Seite, die einem da weiterhilft?

    Mein PHP Buch gibt dazu nämlich nüscht mehr her ...


    cu Yannick

  4. #4
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Ich benutze da ganz normal den Metatag:
    Code:
    <meta http-equiv="refresh" content="3; URL=deineurl.php?offset=$offset&i=$i" />
    ..und dann so abfragen:
    PHP-Code:
    if(!$_GET[offset]) 
      
    $offset 0;
    else 
      
    $offset $_GET[offset];

    //...das gleiche mit $i 
    dat wars...

  5. #5
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    adagio hat sich vor kurzem mit dem prob rumgeschlagen und eine lauffähige version hier reingestellt - such danach mal...
    Gehelft? Hier kannst du dich bedanken.

    mike

  6. #6
    TP-Junior MaxPayne macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Beiträge
    27
    Hi,

    ich hab' nur den Thread hier gefunden ... Dort findet sich aber leider kein Script ... Bin ich mal wieder blind?


    cu

  7. #7
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    wir sollten mal einen 'wie verwende ich die suche' - workshop durchziehen

    den meinte ich.
    (keyword: newsletter user:adagio)
    Gehelft? Hier kannst du dich bedanken.

    mike

  8. #8
    TP-Junior MaxPayne macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Beiträge
    27
    Hmm,
    ich dachte Mail und adagio würden reichen ...

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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