Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Problem mit Mail aus Datenbank

Hallo, ich habe folgendes Problem.
Ich möchte E-Mails über ein PHP Script versenden, und habe dabei ein PullDown Menü das mir alle inder MySQL DB eingetragenen E-Mailadressen auflistet. Weiters stehen Kundendaten und Adressen in der DB, die ich aber in disem Scipt nicht benötige.
Vielleicht aber die ID's da ich auch Überkategorien benutzen möchte. Z.B. Stammkunden, Laufkunden, usw...
Wenn ich eine Mail senden möchte kommt die Meldung "Keine E-Mail Adresse eingetragen".
Den wert übergebe ich mit der POST Methode.

Folgende 2 Codes möchte ich vorstellen:
versand.php
<html>
<head>
<title>E-Mail Versand</title>
<link rel="StyleSheet" type="text/css" href="styles.css">
</head>
<body>
<h1>Neue E-Mail schreiben.</h1>
<form action="send_email.php" methode="POST">
<table width="500" cellpadding="5">
<tr>
<td>Email:</td>
<td>
<select name="an">
<?
error_reporting(0);
$con=mysql_connect("server","name","passwort")
or die("Fehler beim Zugriff auf den Datenbankserver!");
$db=mysql_select_db("datenbankname")
or die("Auf die Datenbank konnte nicht zugegriffen werden.");
$res=mysql_query("SELECT * FROM mitarbeiter")
or die("Fehler beim zugriff auf Mitarbeiter.");
while($row=mysql_fetch_array($res))
{
echo "<option value=";
echo $row["id"];
echo ">";
echo $row["email"];
echo "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Ueberschrift</td>
<td><input type="text" name="ueberschrift"></td>
</tr>
<tr>
<td>Meldung</td>
<td><textarea type="text" name="meldung" cols="40" rows="5"></textarea></td>
</tr>
<tr>
<td>Deadline</td>
<td><input type="text" name="deadline"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Nachricht senden"></td>
</tr>
</table>
</form>
</body>
</html>

send_email.php
<?php
$an=$HTTP_POST_VARS['an'];
$ueberschrift=$HTTP_POST_VARS['ueberschrift'];
$meldung=$HTTP_POST_VARS['meldung'];
$deadline=$HTTP_POST_VARS['deadline'];
if($an!="")
{
$mailtext="Ueberschrift: ";
$mailtext.=$ueberschrift;
$mailtext.="\n";
$mailtext.="E-Mail Adresse: ";
$mailtext.=$an;
$mailtext.="\n";
$mailtext.="Nachricht: ";
$mailtext.=$medlung;
$mailtext.="\n";
$mailtext.="Deadline: ";
$mailtext.=$deadline;
mail($an, "E-Mail von BlaBlaBla", $mailtext, "absender@arbeit.at");
echo "Ihre E-Mail wurde versandt";
}
else
{
echo "Sie haben keine gueltige E-Mailadresse angegeben.";
echo "<br>";
echo "<a href='versand.php'>"."Zurueck"."</a>";
}
?>

Hier gehts zum Orginal Eintrag "Problem mit Mail aus Datenbank" im Forum

Antworten

1. Benutze bitte die Formatierungsmöglichkeiten des Boards.

2. Was genau ist die Frage?


2.

Hast du dir schonmal angeschaut was du übergibst???? Richtig die ID (du solltest übrigens $_POST['an'] verwenden).....
Und dann versuchst du die E-Mail an die ID zu schicken und nicht an die E-Mail-Adresse. Du wirst wohl in der zweiten Datei die E-Mail-Adresse nochmal ausgeben müssen.


3.

Im übrigen benutzt du die method="post" und nicht methode="post". :-)


4.

Vielen Dank für die schnellen Antworten!
Das mit der ID war richtig, kleines Problem und schnell gelöst.
Das eigentliche Problem allerdigs dürfte gewesen sein dass ich HTTP_POST_VARS verwendet habe, denn mit $_POST hat es geklappt.

Ach ja, Method und Methode ist in diesem Fall das selbe ;o)


5.

Also die schreibweise methode ist mir neu.


6.

Zitat:
Durnik postete
Also die schreibweise methode ist mir neu.
Stand so auch im PHP5 & MySQL Buch, und funktioniert genauso.
Warum weiss ich nicht, mal in der Referenzliste nachsehen.


7.

Gemäß SELFHTML ist method die richtige Ausdrucksweise....

http://de.selfhtml.org/html/referenz/attribute.htm#form

Wahrscheinlich ist es ein Tippfehler im Buch und der Browser intrepetiert methode als method. Ich persönlich würde mich aber lieber nicht darauf verlassen.
Ist aber auch übrigens kein Problem für PHP für Fortgeschrittene..........


8.

Die Methode Post ist standard mässig eingestellt, deshalb funktionierts auch. Bei get müsste es Probleme geben. :-)


9.

Mit Get könnte ich die werte nicht übergeben.
Ich weiss schon das es für Fortgeschrittene ist, aber die Methode war auch nicht das eigentliche Problem.

Allerdings stellt sich mir eine weitere Frage:

Wie kann ich eine Mail mit einem solchen Skript an alle, oder einige bestimmte Einträge der Datenbank senden?

Wäre eine interessante Lösung, z.B. wenn ich eine E-Mail an alle eingetragenen Kunden senden möchte, ähnlich wie ein Newsletter.


10.

Du liest doch sicher mittlerweile die E-Mail-Adresse aus der Datenbank im zweiten Skript nochmal aus, richtig? Bau auf der ersten Seite standardmäßig noch ein "alle" in der select-Box mit ein und wenn das gewählt ist, liest du aus der Datenbank alle Einträge, schreibst die schön hintereinander durch ein Komma getrennt in eine Variable weg und nutzt sie in der mail()-Funktion. Wenn es nur an einige gehen soll, würde ich Gruppen bilden, in denen du die Mail-Adressen zusammenfassen kansst. Alternativ auf der ersten Seite alles mit Checkboxen machen und dann anklicken, wer eine Mail bekommen soll.....


11.

Danke ich werde mal versuchen das in die Tat umzusetzen.


Hier gehts zum Orginal Eintrag "Problem mit Mail aus Datenbank" im Forum
 
phpforum.de | Impressum