E-Mail an Gruppen senden

qsrs

Erfahrenes Mitglied
Hallo,

ich habe ein kleines Skript, mit dem ich Nachrichten per mail(); an mehrere Empfänger schicken möchte, die wiederum zu Gruppen gehören. Die Gruppen und Benutzerzuordnungen speichere ich in einer Datenbank. Ich habe folgenden Code:

PHP:
  if (!empty ($dbnewsletters_group_members)) {
   for ($i1 = 0; $i1 < count ($dbnewsletters_group_members); $i1++) {
    $sql_e1 = "SELECT * FROM `$dbtable3` WHERE `user_group` = '".$dbnewsletters_group_members[$i1]."'";
    $query_e1 = mysql_query ($sql_e1, $dbconnect);
    $array_e1[$i1] = mysql_fetch_array ($query_e1);
    }
   for ($i1 = 0; $i1 < count ($array_e1); $i1++) {
    if (!empty ($file_name)) {
     mail ("".$array_e1[$i1][user_name]." <".$array_e1[$i1][user_email].">", $dbnewsletters_subject, "", $xtra_mail);
     }
    else {
     mail ("".$array_e1[$i1][user_name]." <".$array_e1[$i1][user_email].">", $dbnewsletters_subject, $mail_content, $xtra_mail);
     }
    }
   }
Nun ist es aber so, dass die Nachricht immer nur an einen Benutzer, und zwar den ersten einer Gruppe gesendet wird. Ich kann mir ungefähr denken warum, aber ich habe im Moment keinen Lösungsansatz für das Problem. Ich würde mich über Hilfe sehr freuen. Vielen Dank.
 
Wenn du die E-Mail an alle gleichzeitig senden möchtest, kannst du Folgendes machen:
PHP:
if( !empty($dbnewsletters_group_members) ) {
	$array_e1 = array();
	for( $i1=0; $i1<count($dbnewsletters_group_members); $i1++ ) {
		$sql_e1 = "SELECT `user_name`, `user_email` FROM `$dbtable3` WHERE `user_group` = '".$dbnewsletters_group_members[$i1]."'";
		$query_e1 = mysql_query($sql_e1, $dbconnect);
		while( $row = mysql_fetch_array ($query_e1) ) {
			$array_e1[$i1] = '"'.$row['user_name'].'" <'.$row['user_email'].'>';
		}
		if( !empty($file_name) ) {
			mail(implode(',', $array_e1), $dbnewsletters_subject, "", $xtra_mail);
		} else {
			mail(implode(',', $array_e1), $dbnewsletters_subject, $mail_content, $xtra_mail);
		}
	}
}
 
Vielen Dank für deine Antwort. Aber leider funktioniert es noch nicht ganz. Jetzt werden die E-Mails immer nur an einen, und zwar an den alphpabetisch letzten User der selektierten Gruppen geschickt.
 
Dann ändere die eine Zeile mal wie folgt:
PHP:
$array_e1[] = '"'.$row['user_name'].'" <'.$row['user_email'].'>';
 
Vielen Dank, jetzt bin ich schon einen Schritt weiter. Es gibt aber leider noch einen kleinen Schönheitsfehler, den ich mir nicht ganz erklären kann. Jetzt werden die Nachrichten zwar an alle gesendet, nur wird pro Gruppe eine Mail zu viel gesendet. Es erhält unnötigerweise der alphabetisch erste Benutzer einer selektierten Gruppe zusätzlich eine Nachricht.

Ich wollte fragen ob es eine Möglichkeit gibt, dass jeder User eine Mail separat erhält, ohne, dass man alle Empfänger sieht (aber nicht über die BCC-Funktion). Geht das? Falls nicht, wäre ich über die oben beschriebene Methode ohne, dass die unnötige Nachricht mitgesendet wird, ebenfalls dankbar und würde mich über Hilfe sehr freuen. Vielen Dank für deine Unterstützung und die raschen Antworten.
 
Wenn du die BCC Funktion nicht verwenden willst.. warum auch immer, wirst du jede E-Mail einzeln mit einem mail() befehl absenden müssen. Innerhalb der while() Schleife die aktuell nur die Namen und Adressen Sammelt.
 
Zurück