eMail versenden an variable Adresse

EM-Autotechnik

Erfahrenes Mitglied
Hallo zusammen!

Folgender Script soll an alle E-Mail Adressen aus meiner Kundendatenbank
eine E-Mail senden:

<?php


$host = "Host";
$user = "User";
$pass = "PW";
$database ="db";

$db = @mysql_pconnect($host, $user, $pass)
or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
@mysql_select_db($database, $db)
or die ("Verbindungsaufnahme mit Datenbank fehlgeschlagen!");
$sql_select = "SELECT DISTINCT email FROM Kunden";
$result = mysql_query($sql_select, $db);

if($result) {
while ($typ_row = mysql_fetch_row($result)) {
printf("%s\n<br>", $typ_row[0]);
}
}

$von = "Sebastian Gieseler <Sebastian_Gieseler@web.de>";
$an = $result [0];
$antwort_an = "EM-Autotechnik@gmx.de";
$betreff = "PHP E-Mail Test";
$header = "From: $von \n";
$header .= "Reply-to: $antwort_an \n";
$nachricht = <<<ENDOFMAIL
Nachricht an alle EM-Autotechnik Kunden. TEST ERFOLGREICH!
ENDOFMAIL;

mail($an,$betreff,$nachricht,$header);

?>

Fehlerausgabe ist: No recipient addresses found in header

(Adressen werden aber im Browser angezeigt)

Hat einer von Euch Ahnung was ich falsch mache?

Danke für Eure Antworten!

mfg Sebastian
 
ARGH...bitte - es macht die Fehlersuche EXTREM leichter, wenn du das PHP highlighting verwendest, tippe dazu [ PHP ](ohne das leerzeichen)[ /PHP ] und deinen code dazwischen,danke...

mysql_connect() - stimmt
select_db stimmt auch

die query kommt mir etwas spanisch vor, eigentlich heißt es ja
mysql_query(SQL Syntax);
, brauchst keine Verbindungskennung einzugeben.

Sehr hilfreich für's debuggen ist immer ein "or die(mysql_error());
also bitte :suchen: :P es scheint hier an Grundwissen zu mangeln,davon liegt hier genug rum.
PHP:
if($result) {
while ($typ_row = mysql_fetch_row($result)) {
printf("%s\n<br>", $typ_row[0]);
}
}
häää? brauchst du doch gar nicht...


also ich würde es (ganz pauschal) so machen

PHP:
//connect blabla

$res_f = mysql_fetch_row(mysql_query("select distinct email from kunden"));

$kunden_email = $res_f[0];//hattest du hier nicht ein leerzeichen?

$von = "Sebastian Gieseler <Sebastian_Gieseler@web.de>";
$antwort_an = "EM-Autotechnik@gmx.de";
$betreff = "PHP E-Mail Test";
$header = "From: $von \n";
$header .= "Reply-to: $antwort_an \n";
$header .= "BCC:  Sebastian_Gieseler@web.de\n";//Immer gut zum debuggen!
$nachricht = "Nachricht an $kunden_email blablabla";
//Endofmail hab ich was verpasst - nie gehört!

mail($kunden_email,$betreff,$nachricht,$header);

ansonsten schau nochmal hier nach, ob du alle (sonder)bedingungen erfüllt hast, scheint soweit alles in Ordnung zu sein
http://www.selfphp.info/funktionsreferenz/mail_funktionen/mail.php

Naja...Grüße halt ;)
 
Dankeschön für die Antwort

Sorry bin sehr neu hier merkt man wohl werde mich daran halten...

und im Scripten bin ich auch ne null.... ;)

Aber willig etwas darüber zu lernen....

gruss auch!
 
weiteres...

Also nochmal zurück...

mein Script sieht jetzt so aus:

PHP:
<?php


$host = "HOST";
$user = "USER";
$pass = "PW";
$database ="DB";

$db = @mysql_pconnect($host, $user, $pass)
                or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
      @mysql_select_db($database, $db)
                or die ("Verbindungsaufnahme mit Datenbank fehlgeschlagen!");

$res_f = mysql_fetch_row(mysql_query("SELECT DISTINGT email FROM Kunden"));
$kunden_email = $res_f[0];

$von = "EM-Autotechnik Team <AutoMailer@EM-Autotechnik.de>";
$antwort_an = "EM-Autotechnik@gmx.de";
$betreff = "PHP E-Mail Test";
$header = "From: $von \n";
$header .= "Reply-to: $antwort_an \n";
$header .= "BCC:  EM-Autotechnik@gmx.de\n";
$nachricht = "An alle Kunden von EM-Autotechnik Test Erfolgreich!";


mail($kunden_email,$betreff,$nachricht,$header);

?>

Eine E-Mail bekomme ich auch.
Wie gesagt leider nur an eine Adresse.

Muss ich da möglicherweise noch eine WHILE Schleife einbauen?

im übrigen erhalte ich noch eine Fehlermeldung:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /web/test.php on line 14

for help

mfg Sebastian
 
dann halt anderst

So...

Wenn man halt DISTINCT nicht richtig schreiben kann....

Habe jetzt folgendes getestet:

PHP:
<?
$db = @mysql_pconnect($host, $user, $pass)
                or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
      @mysql_select_db($database, $db)
                or die ("Verbindungsaufnahme mit Datenbank fehlgeschlagen!");
$res_f = mysql_fetch_row(mysql_query("SELECT DISTINCT email FROM Kunden"));

while ($array_datensatz = mysql_fetch_array($res_f))
    {
    $kunden_email = $array_datensatz[0];

$kunden_email = $res_f[0];
$von = "EM-Autotechnik Team <AutoMailer@EM-Autotechnik.de>";
$antwort_an = "EM-Autotechnik@gmx.de";
$betreff = "PHP E-Mail Test";
$header = "From: $von \n";
$header .= "Reply-to: $antwort_an \n";
$header .= "BCC:  EM-Autotechnik@gmx.de\n";
$nachricht = "An alle Kunden von EM-Autotechnik Test Erfolgreich!";


mail($kunden_email,$betreff,$nachricht,$header);

}
?>

Folgende Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...

Was mache ich falsch?
Ist die ganze WHILE schleife Müll?

Danke für Eure Ratschläge!

MfG Sebastian
 
heute bin ich bissl daneben...

Mann sollte Variablen wohl nur einen Wert zuweisen... :)

($kunden_email)

ok... aber immer noch gleiche fehlermeldung... :(
 
ok habs...

Ich glaube mysql_fetch_array und mysql_fetch_row vertragen sich nicht so gut....

;)

Naja danke trotzdem jetzt läuft es...

mfg Sebastian
 
PHP:
$kunden_email = $array_datensatz[0];
$kunden_email = $res_f[0];

Interessant. du belegst hier (im Auszug) in der 1. Zeile die Variable mit der E-Mail-Adresse. Danach wird sie nach dem alten Code zugewiesen. $res_f ist aber hier falsch.

Lösche also die 2. Zeile... Dann müsste es funktionieren.
 
Zurück