MyBB.de Forum

Normale Version: mail() BCC an mehrere mit MySQL
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich möchte aus einer Tabelle alle E-mailadressen abfragen und an jede E-mail Adresse eine Nachricht senden am besten mit BCC (hab gelesen das da nicht jedes mal n neuer smtp server geöffnet wird). Nur wie geht das?
Ich komme irgendwie noch nicht einmal soweit, dass PHP meine Abfrage (mysql_fetch_array(...)) als Array erkennt!

Ich hab auch schon eine Menge gefunden, aber das einzige was ich hinbekommen habe war, dass die Nachricht nur an die erste Adresse in der Tabelle gesendet wird (komischerweise wird auch nur die erste abgefragtRolleyes)!

Kann mir jemand helfen?

Bimon
Poste mal deinen bisherigen Code, damit man gucken kann wo es hängt.
PHP-Code:
$abfrage1 "SELECT email, username FROM WMClanLogusers";
$abfrage2 "SELECT email, username FROM WMClanLogusers WHERE uid = '$uidsterne' LIMIT 1";

$connect mysql_connect('localhost''xxxxxxxx''xxxxxxxxxx');
mysql_select_db("xxxxxxxx");

$frage1 mysql_query("$abfrage1");
$frage2 mysql_query("$abfrage2");
$numrows1 mysql_num_rows($frage1);
if(
$numrows1 != "0") {
while(
$row1 mysql_fetch_object($frage1)) {
//$bc = array("$row1->email", );
}
while(
$row2 mysql_fetch_array($frage2)) {
$smail $row2["email"];
$sname $row2["username"];
}

$bc = array('xxxxxxxx@xxx.xx''xxxxxxxx@xxx.xx');

$requester "xxxxxxxx@xxx.xx";
$message .= "


[On spamming contact me, please!]"
;

$bcc implode(', '$bc);

echo 
"$bcc";

mail($bcc$betreff$message"From: $sname <$smail>");

echo(
"An E-mail was send to the entered Member");
}
else {
echo(
"Member does not exist!");


Hoffe das du damit was anfangen kannst das mit implode und und dem array hab ich nur ausprobiert**!
Hier ein Beispiel wie es gehen sollte:
PHP-Code:
$query mysql_query("SELECT email, username FROM WMClanLogusers ORDER BY username ASC");
while(
$recipients mysql_fetch_array($query)) {
    
$headers .= "Bcc: ".$recipients['email']."\r\n";
}
$headers .= "From: absender@adresse.tld\r\n";
mail("empfänger@domain.tld""Betreff""Nachricht"$headers); 
Funktioniert nicht!

Aber Wenn man Bcc: einträgt wozu braucht man dann noch einen Empfänger (empfaenger@domain.tld)???

Ich hab den Code auch ein wenig geändert:

PHP-Code:
$abfrage1 "SELECT email, username FROM WMClanLogusers ORDER BY username ASC";
$abfrage2 "SELECT email, username FROM WMClanLogusers WHERE uid = '$uidsterne' LIMIT 1";

$connect mysql_connect('xxxxxx''xxxxxx''xxxxxxx');
mysql_select_db("xxxxxx");

$frage1 mysql_query("$abfrage1");
$frage2 mysql_query("$abfrage2");
$numrows1 mysql_num_rows($frage1);
if(
$numrows1 != "0") {
while(
$row1 mysql_fetch_array($frage1)) {
$headers .= "Bcc: ".$row1['email']."\r\n";
}
while(
$row2 mysql_fetch_array($frage2)) {
$smail $row2["email"];
$sname $row2["username"];
}
$requester "empfaenger@domain.tld";



$message .= "


[On spamming contact me, please!]"
;



$headers .= "From: $smail\r\n";
mail($requester$betreff$message$headers); 

Hab ich da noch einen Fehler reingebaut?
Was macht man mit /r/n ???
\r\n erzeugt einen Absatz. BCC steht für Blind Carbon Copy, d.h. du sendest an diesen Empfänger eine Kopie der E-Mail, ohne dass dieser sichtbar als Empfänger aufgelistet wird. Da es sich um eine Kopie handelt, muss die Mail aber auch einen echten Empfänger (du selbst) beinhalten.
Siehe dazu auch: http://www.infos24.de/phpe/handbuch/23_php_mail.htm#2

Auf den ersten Blick finde ich in deinem Code keinen Fehler, allerdings sehe ich noch nicht so ganz wozu der zweite Query da ist. Wenn du nur den Code testest, den ich gepostet hatte, gehts dann?
Der Code bringt mir nicht viel, da ich den zweiten query brauche:

Auf meiner HP sind Leute angemeldet. Wenn sie eingeloggt sind können sie auf eine Seite gehen auf der Member angezeigt werden. Dadrüber ist ein kleiner Link "Contact a Member". Dieser Link führt zu einer Seite auf der sie dann einen Membernamen eingeben können, dann betreff und die Nachricht.

So und nun was hinter dem Code steckt:
Einmal wird der eingegebene Membername aus einer MySQL Tabelle abgefragt und anhand dessen die E-mail Adresse.
PHP-Code:
mysql_query(SELECT email From WMClanLogusers WHERE username '$eingegebener Name'); 
Die zweite Abfrage ist dazu da, um den Absender zu ermitteln. Dazu:

uid ermitteln
anhand der uid username und e-mail adresse abfragen
als Absender eintragen

Es soll ein Script sein mit dem sich die Member untereinander Kontaktieren können ohne die E-mail Adresse des anderen angezeigt zu bekommen (da dies möglicherweise von einigen Membern nicht gestattet wird!).

Dazu habe ich aber 2 Scripts:
Einmal wenn man den Benutzernamen eingibt, dass dann an die entsprechende Person gesendet wird.
Das zweite, wenn man Everyone einträgt, das an alle gesendet wird.

Hoffe du konntest mir folgen, wenn nicht sag Bescheid!

Bimon
Bitte lass dir mal über
PHP-Code:
echo $headers
den Inhalt ausgeben und gucke ob hier alles in Ordnung ist.
Das sieht für mich nach einem großen Fortschritt aus! ::::

Ausgabe:
Bcc: email@adresse.tld Bcc: email@adresse.tld Bcc: email@adresse.tld Bcc: email@adresse.tld From: meine@email.adresse


Bei mir hatter vorher nur das erste abgfragt. Die Frage jetzt stellt sich eigentlich von selbst:

Wie bekomm ich Bcc: nur am Anfang und dann Kommata?

Hab auch schon ne Idee: kann man nich einfach die $headers mit dem From Teil und Bcc: benennen und dann die abfrage der E-mail adressen Bcc: ersetzen durch Kommata? Nur am Anfang darf doch dann kein komma stehen oder?

Bimon
Seiten: 1 2