einfacher newsletter mit auswahl

ropueh

Mitglied
hallo, in der hoffnung, nicht schon ein abgegriffenes thema anzuschneiden - hier meine frage:

ich hab nen einfachen newsletter, der bislang eine mail an alle eingetragenen nutzer schickt. ich möchte es nun, via checkbox, ermöglichen, dass man als admin auch mal nur bestimmte email adressen auswählen kann, damit nicht immer jeder jede news bekommt.

ich hoffe das problem wird klar ;)

PHP:
      <form name="form" method="post" action="senden2.php">
      <input type="text" name="betreff" size="50" maxlength="50">
<input type="text" name="nachricht" size="100" maxlength="100">
 <?php
$dbh=mysql_connect("localhost","user","pass"); 
mysql_select_db("db",$dbh);  

$query = mysql_query("SELECT * FROM mail order by id ASC");
while($data = mysql_fetch_array($query))
{

$name = $data[name];
$email = $data[email];

echo "<input type=\"checkbox\" name=\"auswahl[]\" value=\"".$email."\"> <b>".$name."</b>  ".$email."<br>";
}
?>

<input type="submit" name="submit" value="news senden"></form>

die checkbox also schon da.. aber dann hörts auch auf..

PHP:
<?php
$betreff=$_POST["betreff"];
$nachricht=$_POST["nachricht"];

if(!empty($betreff) && !empty($nachricht))
{

$dbh=mysql_connect("localhost","user","pass"); 
mysql_select_db("db",$dbh);  
    
    $sql="select email from mail";
    
    $res=mysql_query($sql) OR die(mysql_error());

    while($datensatz=mysql_fetch_assoc($res))
    {
	mail($datensatz["email"], $betreff, $nachricht);  
    }
    
    $num=mysql_num_rows($res);
    echo "$num Emails verschickt";
}

else
{
    echo"Bitte alle Felder ausfüllen";
    
}
?>

danke im voraus
 
Moin,...

die Mailadressen brauchst du eigentlich nicht nochmals aus der DB zu holen, die bekommst du ja per POST.
PHP:
<?php
$betreff=$_POST["betreff"];
$nachricht=$_POST["nachricht"];

if(!empty($betreff) && !empty($nachricht))
{
  $num=0;
  foreach($_POST['auswahl'] as $email)
    {
      if(mail($email, $betreff, $nachricht)){$num++;}
    }
  echo "$num Emails verschickt";
}

else
{
    echo "Bitte alle Felder ausfüllen";
}
?>
 
ha, es geht weiter ;)
und zwar sinds nun doch schon ein paar user geworden und ich möchte noch eine checkbox, die automatisch alle auswählt

danke im voraus
 
So ungefähr:
PHP:
echo "<input type=\"checkbox\" name=\"auswahl[]\" value=\"alle\"> <b>Alle</b><br>"; // Vor oder nach der Schleife einfuegen


if($_POST['auswahl'] == 'alle')
{
  // Email an alle schicken, das hast du ja schonmal gemacht
} else
  {
    // Und hier der neue Code der nur an bestimmte Adressen schickt...
  }
 
ich bin einfach zu dämlich
krieg die mails an alle nich raus... er zeigt an, 1 mail versandt, aber es passiert nichts.
kannst das evtl nochmal einfügen?

das formular bislang:
PHP:
      <form name="form" method="post" action="senden2.php"><br><br>
      Betreff:<br><input type="text" name="betreff" size="50" maxlength="50"><br><br>
Text:<br><textarea name="nachricht" cols="50" rows="10"></textarea><br><br><br><i>Empfänger:</i><br><br>
 <?php
$dbh=mysql_connect("localhost","usr","pass"); 
mysql_select_db("db",$dbh);  

$query = mysql_query("SELECT * FROM newsletter order by id ASC");
while($data = mysql_fetch_array($query))
{

$name = $data[name];
$email = $data[email];

echo "<input type=\"checkbox\" name=\"auswahl[]\" value=\"".$email."\"> <b>".$name."</b>  ".$email."<br>";
}
?>

<br><br><input type="submit" name="submit" value="news senden"></form>

da kommt ja nun vor der while schleife die checkbox "alle"


aber hier?!
PHP:
<?php
$betreff=$_POST["betreff"];
$nachricht=$_POST["nachricht"];

if(!empty($betreff) && !empty($nachricht))
{
  $num=0;
  foreach($_POST['auswahl'] as $email)
    {
      if(mail($email, $betreff, $nachricht, "From: xyz <xyz@gmx.de>")){$num++;}
    }
  echo "$num Emails verschickt<br><a href=\"http://www.xyz.de/index.php?site=senden\">meeeehr</a>";
}

else
{
    echo "Bitte alle Felder ausfüllen";
}
?>
 
Zurück