personalisierter PHP Newsletter

brain2

Grünschnabel
Hallo alle,

ich hab folgendes Problem. Ich habe eine PHP Datei, dei einen Newsletter versendet. Zusätzlich eine Html -Datei, die den Inhalt des Newsletter beinhaltet. Ich will nun die Html Datei personalisieren. Z.B. Sehr geehrter Herr .... Die Daten sind in einer CSV Datei hinterlegt. Wie kann ich das alles unter einen Hut bringen. Ich wäre sehr froh, wenn mir jemand helfen könnte.

schöne Grüße
 
Setze einfach an den entsprechenden Stellen Platzhalter und ersetze diese anschließend durch die endgültigen Werte.
 
Danke erst einmal für die echt schnelle Antwort,

aber wie meinst du das mit den Platzhaltern? Soll ich ein Textfeld in der html Datei anlegen und danach die Php Datei dies ausfüllen lassen?
 
Alos ich checks nicht ich weiß nicht wo ich das einfügen soll. Ich habe in die html Datei einen platzhalter eingefügt und mit einem Variablennamen benannt. NAME( muss die in html $name heißen) und aktion das php script sein? Wo mss ich jetzt das PHP Script umbauen mit str_replace() und was muss ich noch angeben? Irgendwie steh ich auf dem Schlauch.Vllt. kannst du mir helfen ich hab den Code der PHP Datei mal eingefügt.

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
  //Newsletter laden
  $bol=file_exists("aktuell.html");
  if ($bol) {
    print('<p>Newsletter-Datei wird geladen</p>');
    $datei = fopen("aktuell.html","r");
    if ($datei) {
      $newsletter = fread($datei, filesize("aktuell.html"));
      fclose($datei);
      print('<p>Okay, Newsletter-Datei wurde geladen</p>');
     }
    else {
      print ("<p>Newsletter-Datei konnte nicht geladen werden!</p>");
     }
    }
   else {
     print ("<p>Newsletter-Datei existiert nicht</p>");
   }

  //CSV-Datei laden
  $bol=file_exists("empfaenger.csv");
  if ($bol) {
    $datei = fopen("empfaenger.csv","r");
    if ($datei) {
      $dateigroesse=filesize("empfaenger.csv");
      print('<p>Newsletter wird verschickt:</p>');
      while(($data=fgetcsv ($datei, $dateigroesse, ";"))!=false) {
        //Jetzt Mail versenden:
        print($data[1]);
        print("<br>");
        mail($data[1], "Aktueller Newsletter", $newsletter, "Content-Type: text/html\nFrom: news@ideehochx.de");
       }
     fclose($datei);
     print('<p>Okay, Newsletter wurde verschickt:</p>');

     }
    else {
      print ("<p>CSV-Datei konnte nicht geladen werden!</p>");
     }
    }
   else {
     print ("<p>CSV-Datei existiert nicht</p>");
   }
?>
</body>
</html>
 
Da sich der HTML-Code in der $newsletter-Variable befindet, musst du auch dessen Wert verarbeiten.
 
Hilfe ich checks gar nicht!

Sorry fürs nerven! Ich hab in der Html Datei das Felde eingefügt. Ok. Das habe ich mit Nachname benannt. Die muss ich ja im Php Code festlegen. Aber wenn ich jetzt str_replace() einfüge gibt der Server eine Fehlermeldung. Könntest du mir das bitte mal das alles an die richtige Stelle setzen. Ich seh vor lauter Bäumen den Wald nicht mehr. Im Grundsatz weiß ich was du meinst aber irgendwie kann ich es nicht umsetzen.
 
Schematisch würde das Ganze etwa wie folgt aussehen:
PHP:
$string = 'foo {NACHNAME} bar';
$string = str_replace('{NACHNAME}', 'Otto Normal', $string);
echo $string; // es sollte „foo Otto Normal bar“ ausgegeben werden
 
Zurück