Funktioniert dieses Script ordnungsgemäß?
Nicolas Muehlen
- php
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
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?
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
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
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
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
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