Ich hab es mittlerweile geschafft dass ein kleines Script E-Mails versendet und diese auch mit den befehlen wie zB <b></b> usw in HTML also HTML-E-Mails kann ich versenden.
Ich würde jetzt aber gerne eine E-Mail versenden die mein Homepage-Layout auch als Hintergrund hat. Ich hab die Homepage vorlage so gut wie möglich abgespeckt dass es möglichst klein wird und hab es mit in das Script eingebaut allerdings kommt immer nur beim absenden eine weiße E-Mail an also eine leere Mail....
Was wird alles in so eine HTML-Mail nicht unterstützt? und was muss ich machen dass auch das Layout genutzt werden kann?
HTML - Email
- Bones van Helghast
- Mitglied
- Beiträge: 157
- Registriert: 19.09.2008 08:31
Re: HTML - Email
Okay, das hab ich geschafft hatte einen kleinen Tippfehler in der Variable.
Nun aber zu einem anderen Problem. Ich möchte mehrere E-Mails aus der Datenbank ausgeben diese sollten dann in den Blindkopie kommen und versendet werden ich schaff es einen Datensatz auszugeben aber mehrere E-Mails aus der gleichen Datenbank schaff ich nicht der Code sieht momentan so aus:
// Variablen für E-Mail
$abfrage = mysql_query("SELECT * FROM newsletter_user");
while ($row = mysql_fetch_array($abfrage)) {
$email = $row['email'];
}
$mail_betreff = $_POST['mail_betreff'];
$mail_text = $_POST['mail_text'];
$vorlage = "Homepage-Vorlage";
// E-Mail
$adresse = $email;
$betreff = $mail_betreff;
$inhalt = $vorlage;
$header = "Content-Type:text/html\r\n";
$header .= "From: noreplay@email.de\r\n";
@mail($adresse,$betreff,$inhalt,$header);
Nun aber zu einem anderen Problem. Ich möchte mehrere E-Mails aus der Datenbank ausgeben diese sollten dann in den Blindkopie kommen und versendet werden ich schaff es einen Datensatz auszugeben aber mehrere E-Mails aus der gleichen Datenbank schaff ich nicht der Code sieht momentan so aus:
// Variablen für E-Mail
$abfrage = mysql_query("SELECT * FROM newsletter_user");
while ($row = mysql_fetch_array($abfrage)) {
$email = $row['email'];
}
$mail_betreff = $_POST['mail_betreff'];
$mail_text = $_POST['mail_text'];
$vorlage = "Homepage-Vorlage";
$adresse = $email;
$betreff = $mail_betreff;
$inhalt = $vorlage;
$header = "Content-Type:text/html\r\n";
$header .= "From: noreplay@email.de\r\n";
@mail($adresse,$betreff,$inhalt,$header);
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: HTML - Email
Bitte füge deinen Code in Zukunft in
Code: Alles auswählen
Blöcke ein, dann kann man ihn besser lesen.
In dem Segment sind mehrere Fehler: Der erste und wichtigste ist, dass das Formular so als Spamschleuder verwendet werden kann indem in den Mailheader Zeilenumbrüche eingefügt werden. Du solltest niemals $_POST Variablen (oder irgendwelche vom User stammenden Variablen) direkt an mail übergeben, sondern immer erst alle verbotenen Sonderzeichen strippen (am besten per Whitelist, also alle erlaubten Zeichen in eine Liste schreiben und alles andere per preg_replace o.ä. entfernen). Betreff, Empfänger und Headervariablen gehen in den Mailheader und sollten daher besonders genau geprüft werden, so dass da niemand Schindluder mit treiben kann. Am besten suchst du dir aber einfach eine PHP Mailer Klasse im Internet, die diese Dinge für dich erledigt, damit kannst du dann auch andere Dinge recht einfach realisieren, wie z.b. CC oder BCC Versand, Attachments etc.
Das zweite Problem, weshalb du nur an einen Empfänger verschickst ist, dass deine Schleife nach der Zuweisung an $email endet. Damit verschickst du nur an den letzten Empfänger der in der Datenbank steht. Entweder du speicherst alle Emails zwischen in einem Array und trägst sie dann alle als Empfänger ein (da musst du dann aufpassen mit den Höchstgrenzen an Empfängerzahlen und ggf. die Mail splitten, mehr als 100 Empfänger sollten es auf keinen Fall sein pro Mail), oder du verschickst pro Schleifendurchgang eine Mail, packst also die Email Erzeugung auch in die Schleife hinein. Auch für die Mailadressen in deiner Datenbank gilt: Stelle sicher, dass da kein Mist drinstehen kann, sonst wird das Formular zur Spamschleuder.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.