Nicolas Muehlen: Funktioniert dieses Script ordnungsgemäß?

Hallo zusammen,
ich habe vor, allen in meiner Freespace-Liste eingetragenen Providern eine E-Mail zu schreiben. Dies möchte ich mit einem PHP-Script machen, der der Inhalt der Mail teilweise dynamisch generiert werden muss. Die Daten, die das PHP-Script braucht sind in einer mySQL-Tabelle abgespeichert und das Script wird über den Browser aufgerufen.
Die Mails werden dann an ca. 300 Adressen verschickt, und daher ist es natürlich schwierig, dieses Script im großen Rahmen auszuprobieren; mit 5 Adressen hat es zwar erfolgreich funktioniert, aber wer weiß, wie das bei einer solch großen Menge ist. Kann sich vielleicht deshalb jemand von euch mal das Script anschauen, ob es da diesbezüglich irgendwelche Probleme geben könnte? Hier mal der Code:

<?php

$link = mysql_pconnect("localhost","xxxxx","xxxxx");
mysql_select_db("frsp1",$link);

$query = "select * from Mail";
$result = mysql_query($query,$link);
$num = mysql_numrows($result);

for ($i = 0; $i < $num; $i++) {
$row = mysql_fetch_array($result);

$mailtext= "hier der text...";

mail("$row[Adresse]", "titel", $mailtext, "From: nicolas@muehlen.net");
echo "$row[ID]: ok<br>"; //<- dies ist die Bestätigung für mich
    }
?>

Und, was meint ihr, würde das funktionieren?
Viele Grüsse und danke,

Nicolas Muehlen

  1. Hi,

    (ohne konkrete Ahnung von PHP:)

    Aufgrund der Struktur Deiner Schleife erwarte ich
    keinen Unterschied gegenüber dem Versand von 300 Mails
    an *dieselbe* Adresse (was Du sehr leicht ausprobieren
    kannst).
    Mit einer entsprechenden mySQL-Tabelle mit 300
    identischen Einträgen könntest Du probieren, ob Dir
    z. B. der Array für die Treffer überläuft (oder was
    auch immer) - was Du durch inkrementelles Bearbeiten
    (jeden Treffer sofort einzeln rausmailen) ändern
    könntest (hm, was genau die Funktion "mail" intern
    macht, weiß ich allerdings nicht).

    Es könnte höchstens irgendwer auf dem SMTP-Server
    "gleiche" Mails zusammenzufassen versuchen (was Du
    aber merken würdest, wenn Du Deine eigene Mail-
    Adresse angeben würdest, was Du bei den 5 Testadressen
    sicherlich getan hast).

    mfG - Michael

    P.S.: Wieso 300 Mails und nicht eine mit 300 bcc:s?

    1. Hi Michael,

      P.S.: Wieso 300 Mails und nicht eine mit 300 bcc:s? <<

      Da jeder Empfänger eine individuelle Mail mit den Daten bekommt, die ich in meiner Datenbank über ihn abgespeichert habe. Deshalb auch der umständliche Weg über das PHP-Script, denn mir ist kein Mailclient bekannt, mit dem ich so etwas ohne größere Umstände tun könnte...
      Viele Grüsse,

      Nicolas Muehlen

    2. Nochmals hi,

      Mit einer entsprechenden mySQL-Tabelle mit 300

      identischen Einträgen könntest Du probieren, ob Dir
      z. B. der Array für die Treffer überläuft <<

      Sorry, das habe ich vorhin ganz vergessen zu fragen: Kennst jemand vielleicht einen Mailserver (zum Empfangen), den ich dafür auf meinem Computer installieren kann? Meines Wissens nach lassen nämlich die meisten Server mit einem halbwegs anständigen Spamschutz keine 300 identischen Mails durch...
      Viele Grüsse,

      Nicolas Muehlen

      1. Auch wieder hi,

        Mit einer entsprechenden mySQL-Tabelle mit 300
        identischen Einträgen könntest Du probieren, ob Dir
        z. B. der Array für die Treffer überläuft <<
        Sorry, das habe ich vorhin ganz vergessen zu fragen: Kennst jemand vielleicht einen Mailserver (zum Empfangen), den ich dafür auf meinem Computer installieren kann? Meines Wissens nach lassen nämlich die meisten Server mit einem halbwegs anständigen Spamschutz keine 300 identischen Mails durch...

        Gegenangebot: Wenn Du die 300 User-Einträge in Deiner
        Tabelle ohnehin per Skript etc. "faken" mußt, dann
        generiere doch gleich  zufällige Werte für ihre
        Attribute mit - dann sind die 300 Mails alle
        verschieden, so wie sie das später im realen
        Einsatz auch sein werden ...

        mfg - Michael

  2. Hallo Nicolas,

    ich kenne zwar das Mailmodul nicht, aber mit ASPMail / ASP
    würde es ziemlich lange dauern, bis 300 Mails verschickt sind.
    Ich bin daher dazu übergegangen, als Empfänger z.B.: news@domain.de
    (eine eigene Adresse, die nur für den Newsletter da ist)
    anzugeben und die eigentlichen Empfänger als BBC anzugeben.
    Der Vorteil ist, daß der eigentliche Mailserver die ganze Arbeit hat :-)
    und mein Skript viel schneller fertig ist (und wenn ein Mailserver
    das nicht kann, wer dann?)

    Tschau, Stefan

  3. Hi Nicolas,

    ne Trivialidee, statt:

    mail("$row[Adresse]", "titel", $mailtext, "From: nicolas@muehlen.net");

    mal

    echo " $row[Adresse] ", " titel ", $mailtext, " From: nicolas@muehlen.net "," <br>\n";

    und gucken obs dir gefällt.

    Schiefgehen tut wohl nur das, was anders ist als bei deinem Test. (also der Zugriff auf den Datensatz,
    der Datensatz selber, irgendeinen Kleinkram den du im script verändert hast ...).

    Gruss,
    Carsten