mail() an Email Addy aus DB?

markberg

Erfahrenes Mitglied
Hallo,
habe bei der Suche leider nichts gefunden. Auf meiner Seite sollen sich User eine E-Mail schicken können! Wenn ich den Empfänger "per Hand" eintrage geht das auch problemlos. Möchte aber, das die Mail Adresse des Empfängers aus DB gelesen wird (klappt auch) und die des sendenden Users an ihn verschickt wird = klappt nicht :-(

Meine Abfrage der Daten des Empfängers:
PHP:
$SQLString = "SELECT * FROM DB123456.tabelle WHERE `id` = ' ".$_GET['id']." ' "; 
$Ergebnis = mysql_query($SQLString, $Verbindung);
if ($Ergebnis) {
$Datensatz = mysql_fetch_array ($Ergebnis);
while ($Datensatz) {
echo '<table>';
echo '<tr><td>MAIL='.$Datensatz["email"].'</td></tr>';
echo '</table>';
$Datensatz = mysql_fetch_array($Ergebnis);
}
}

... und dann an Empfänger mailen...
PHP:
$betreff = "Nachricht von $username";
mail("$email", "$betreff", "$nachricht");

Fehler erscheint: no recipient adress founded in header!
Habe es auch bereits mit $Datensatz["email"] als Empfänger prob.!

Wo mache ich denn den Fehler, please help... :-)
Vielen Dank vorab!
 
Gib uns doch mal die Originale Fehlermeldung, also so wie sie ausgegeben wird!

Wo weißt du denn der Variablen $mail etc. die Werte zu?
 
Fehler:
no recipient adresses found in header

Die EMail Adresse hole ich ja aus der DB. Per echo erscheint ja auch die richtige EMail Adresse, somit müßte doch das mail() wissen, das $mail (oder meine erfolglosen Versuche mit $Datensatz["email"] etc.) die EMail Adresse aus der DB ist, oder bin ich jetzt verwirrt :-)

vielen Dank
 
Kannst du eine Mail schicken wenn du das ganze mal statisch testest also die E-Mail-Adresse direkt in die Mail-Funktion schreibst? Teste da smal bitte!
 
Ich durchblick zwar im Moment nicht ganz, was dein erster Quelltext-Block bewirken soll... Oder ist der einfach nur zur Überprüfung, ob die richtige eMail-Adresse da ist!?
Naja, jedenfalls hast du da zweimal die Zeile
Code:
$Datensatz = mysql_fetch_array($Ergebnis);
Nach dem ersten Mal ist aus dem $Ergebnis der Array weg.
Deshalb macht deer zweite Aufruf keinen Sinn. Da wird $Datensatz praktisch mit nichts überschrieben, ist folglich leer => keine Adresse mehr in $Datensatz["email"]
Wenn du die zweite Zeile einfach rauslöschst kannst du ja weiterhin auf $Datensatz["email"] zugreifen.
Also einfach mal den zweiten Aufruf löschen und ausprobieren. Ob der Fehler vielleicht irgendwo anders liegt, kann ich aufgrund des wenigen Codes nicht sagen....
 
Also mit der statischen Mail funktionierts ja...
Die Array Abfrage dient zur Überprüfung, ob die E-Mail Adresse des Empfängers korrekt und überhaupt ausgegeben wird. Dem ist so!
 
Was ich sagen wollte:
Du sollst nicht die zweite Zeile deines Codes, sondern den zweiten Aufruf von
$Datensatz = mysql_fetch_array($Ergebnis);
löschen.
Der überschreibt ja den vorherigen $Datensatz, in dem die email-Adresse drin ist, mit "Leer".
Also Zeile 9 aus deinem ersten Codeblock löschen
 
Jaja, hatte ich auch so verstanden, Ergebnis ebenfalls negativ. Ich glaube muss mir eine andere Variante einfallen lassen...

Eigentlich wollte ich ganz einfach die Nachricht, die an den Empfänger versand werden soll sowie die ID des Empfängers mit übergeben auf die Mailseite. Und dort wollte ich die Abfrage neu starten um die Empfängermail zu bekommen!? Und dann halt per mail() versenden... Mal sehen wie man es noch hinbekommen kann...
 
Zurück