HTML Newsletter durch mail() versenden
Matthias
- php
0 Pascal Ehlert0 Matthias0 Pascal0 Matthias
0 wahsaga
Hi,
würde gerne einen Newsletter Verteiler machen, der sich die Empfänger aus der Datenbank holt und eine newsletter.htm file, die man vorher uploaded als email schickt.
Das mit der Db ist geregelt, nur die file wird nicht gesendet. Wie macht mans richtig ?
Vielen Dank im Voraus
Maze
Meine Glaskugel ist im Moment leider kaputt, deshalb empfehle ich die einfach mal den Quellcode auf http://nopaste.rootcenter.org zu Posten und uns den Link zu schreiben.. So wird das Problem ohne Glaskugel kaum zu lösen sein.
Pascal
Hier die Schleife nach der DB abfrage:
while ($send = mysql_fetch_array($r)) {
mail ($send["email"],$betreff,$uploadtext);
$status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
}
}
$uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.
Mensch, jetzt tu dich halt nich so schwer und gib mal den ganzen Source.
Das ist immer noch zu wenig, soweit ist alles in Ordnung.
Vermutlich läuft beim Upload etwas schief, aber wie gesagt.. Glaskugel ist in der Werkstatt.
Nichts für ungut.
Pascal
Hier die Schleife nach der DB abfrage:
while ($send = mysql_fetch_array($r)) {
mail ($send["email"],$betreff,$uploadtext);
$status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
}
}$uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.
<?php
$betreff = $_POST["betreff"];
$upload = $_POST["upload"];
$dateiname = $HTTP_POST_FILES["upload"]["name"];
$pfad = $HTTP_POST_FILES["upload"]["tmp_name"];
if ($betreff =="") {
$status = "Bitte korrigieren Sie Ihre Eingaben";
}
else
{
$path = ("uploads/".$dateiname);
move_uploaded_file($pfad,$path);
$uploadtext = fopen($path, "w+");
$verbindung = mysql_connect(localhost, blabla, blabla);
@mysql_select_db(blabla, $verbindung) or die ("Die Datenbankverbindung konnte nicht hergestellt werden");
$abonnenten = "SELECT * FROM newsletter";
$r = mysql_query($abonnenten, $verbindung);
while ($send = mysql_fetch_array($r)) {
mail ($send["email"],$betreff,$uploadtext);
$status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
}
}
jap, irgendwie weiss ich nicht richtig wie ich die Uploadfile in den mail() befehl integrieren soll
Hallo,
$betreff = $_POST["betreff"];
$upload = $_POST["upload"];
$dateiname = $HTTP_POST_FILES["upload"]["name"];
$pfad = $HTTP_POST_FILES["upload"]["tmp_name"];
Das ist alles veraltet.
Neu: $_FILES
Lies:
<Wie funktioniert ein Datei-Upload über HTML-Formulare?
http://www.dclp-faq.de/q/q-formular-upload-php4.html>
$uploadtext = fopen($path, "w+");
Damit wird $uploadtext zu einem "Handler", der auf die Datei zeigt.
Und diesen Zeiger willst Du hier verschicken:
mail ($send["email"],$betreff,$uploadtext);
Lies unbedingt mal:
Wie kann ich eine Datei auslesen?
http://www.dclp-faq.de/q/q-datei-lesen.html
Und ueberhaupt: Warum warst Du zu faul, nachzusehen,
was in der Variable $uploadtext steht, bevor Du hier nachfragst?
echo "<h2>Uploadtext:</h2>\n";
echo "<pre>\n";
echo $uploadtext;
echo "<pre>\n";
Gruesse,
Thomas
Hallo,
<Wie funktioniert ein Datei-Upload über HTML-Formulare?
http://www.dclp-faq.de/q/q-formular-upload-php4.html>
Sorry:
http://www.dclp-faq.de/q/q-formular-upload-php4.html
Gruesse,
Thomas
Jetzt kriege ich den HTML Code der upgeloadenen File gesendet, aber ich will in meinem Outlook ja diesen Code als Website angezeigt bekommen und nicht alleine diesen Code !
$path = ("uploads/".$dateiname);
move_uploaded_file($pfad,$path);
$uploadtext = fopen($path, "r");
$mail = implode("", file("$path"));
$verbindung = mysql_connect(localhost, , );
@mysql_select_db(, $verbindung) or die ("Die Datenbankverbindung konnte nicht hergestellt werden");
$abonnenten = "SELECT * FROM newsletter";
$r = mysql_query($abonnenten, $verbindung);
while ($send = mysql_fetch_array($r)) {
mail ($send["email"],$betreff,$mail);
$status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
}
}
habs raus, trotzdem danke
Hallo,
habs raus, trotzdem danke
Fürs Archiv könntest du ja schreiben wie.
Grüße
Jeena Paradies
hi,
mail ($send["email"],$betreff,$uploadtext);
$uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.
was heisst "soll sein" - steht der richtige inhalt in der variablen, oder nicht?
des weiteren musst du für eine html-mail natürlich noch die entsprechenden email-header mit der content-type angabe text/html erzeugen - wie, sollte im manual bei der erklärung zum befehl mail() stehen.
gruss,
wahsaga