Mailbenachrichtigung an mehrere User
Linda
- php
0 Sebastian Becker0 Tom
Hallo Forumer,
kann mir jemand einen Tipp geben, wie ich am besten folgendes Problem löse:
In meinem Forum gibt es eine Funktion, die den Usern ermöglicht über neue Themen im Forum eine Benachritigung per Email zu erhalten. Momentan habe ich es ziemlich unelegant gelöst. Wenn ein neues Thema im Forum eingetragen wird, läuft eine Schleife, die die Mails an die User aufbereitet. Nun, wenn angenommen 150 User die Benachritigung erhalten möchten, kann die Verarbeitung etwas dauern und ich möchte nicht, dass der User, der das neue Thema erfasst darunter leiden muss :). Da aber die Funktion beim Erfassen des neuen Thema gestartet wird, kommt er nicht daran vorbei :( Wie könnte ich die Verarbeitung so starten, dass der User, der das neue Thema erfasst hat, ungestört weitermachen kann und die Mails im Hintergrund aufbereitet werden?
Danke für die Tipps.
Linda
Hallo Linda,
spontane Idee: zuerst die Daten mit "flush" oder/und "ob_flush" an den Browser senden, dann mailen ...
http://de2.php.net/manual/de/function.flush.php
http://de2.php.net/manual/de/function.ob-flush.php
Ich weiß aber nicht, ob's funktioniert - am besten einfach mal testen ...
Grüe,
Sebastian
Hello,
benutze den CC:-Header oder den BCC:-Header der Mailfunktion. Die kannst Du bei mail() im $header eintragen. Du solltest aber darauf achten,. dass niemals ungeprüfte Usereingaben in das $header-Argument von mail() gelangen können. Die Mailfunktion ist injizierbar.
$sql = 'select email from user where newsletter = 1';
...
$_rec = array();
$_emails = array();
if ($res)
{
while($_rec = mysql_fetch_assoc($res))
{
$_emails[] = $_rec['email'];
}
}
$mail_str = implode(",\n",$_emails);
echo nl2br($mail_str);
$header .= "CC: $mail_str\r\n";
mail(.......,....,$header);
http://de3.php.net/manual/en/function.mail.php
Liebe Grüße aus http://www.braunschweig.de
Tom