Heikstar: Zeilenumbrüche in einer Mail

Hallo zusammen,

ich habe folgendes Problem.

Ich versuche mit folgender Java Funktion eine Mail für Outlook zu erstellen:

==========
function erstellemail(email,betreff,brieftext) {
 if (state == 0){
 alert("Bitte passen sie zuerst den Text an");
 }
 if (state == 1){
 var ziel = "mailto:" +email +"&subject=" + betreff + "&body=" + brieftext;
 window.location.href = ziel;

}

Nun kommt der Text für den Mailbody aus einer Datenbank und enthält daher die Zeilenumbrüche als "\n".

Wenn ich nun versuche diese in PHP durch einen Replace mit "%0A" zu ersetzten und diese dann über einen Link an die Javafunktion übergeben will kommt die Java-Fehlermeldung:
"Nicht abgeschlossene Zeichenkonstante". Scheint an dem %-Zeichen zu liegen, da die Meldung nicht kommt wenn ich in dem PHP-Replace das %-Zeichen entferne.

Aber ich benötige die Zeilenumbrüche.

Kann mir jemand sagen, wie man das hinbekommen kann ?

Gruß
HeikStar

  1. Hallo,

    schau dir mal den Quelltext der Seite an, der von PHP generiert wurde. Falls meine Vermutung richtig ist, wirst du dort im Quelltext Zeilenumbrüche sehen, die Javascript nicht besonders mag. Dann funktioniert allerdings schon die Ersetzung in PHP nicht richtig. Wie sieht denn dein PHP Code aus?

    liebe Grüße

    mbr

    P.S.: Das hat zwar mit dem Thema nichts zu tun, aber : JAVA != JAVASCRIPT (vor allem, da du ja den korrekten Themenbereich gewählt hast...)

    1. Sorry für die Verwechslung (JAVA + J-Script).

      Deine Vermutung stimmt. Im Quelltext sind schon die Umbrüche zu sehen.

      Die entscheidende Zeile im PHP Code ist folgende:

      ===
      $brieftext=str_replace("\n","%0A",$row[brieftext]);

      Anschließend wird dann der Link erzeugt:

      ===
      <a href="javascript:wegpermail('<? echo $row[email]?>','<? echo $changed?>','<? echo $row[betreff2]?>','<? echo $brieftext?>')">

      Wie kann man dass nun umgehen ?
      Sorry, aber den Ansatz von Ingo hab ich noch nicht so ganz geschnallt.

      Danke für die Hilfe

      Gruß
      Heikstar

      1. Tja, nun hats dann auch bei mir gedämmert.

        Vielen Dank.

        Der Tipp von Ingo war des Rätsels Lösung. Nun ersetzte ich im PHP Teil einfach /n durch einen Xbeliebigen String, der dann im JAVASCRIPT Teil nochmals ersetzt wird. Damit ist dass Problem gelöst und ich habe schöne Zeilenumbrüche in der Mail.

        Tausend Dank.

        Gruß
        Heikstar

  2. Hi,

    Wenn ich nun versuche diese in PHP durch einen Replace mit "%0A" zu ersetzten und diese dann über einen Link an die Javafunktion übergeben will kommt die Java-Fehlermeldung:
    "Nicht abgeschlossene Zeichenkonstante". Scheint an dem %-Zeichen zu liegen, da die Meldung nicht kommt wenn ich in dem PHP-Replace das %-Zeichen entferne.

    nein - das kommt daduch, daß %0A als Zeilenumbruch interpretiert wird und die JavaSCRIPT-Zeile aufteilt. Du könntest ein Platzhalterzeichen für den Umbruch wählen - ich nehme hierzu gern "|" - und dieses dann für die Ausgabe entsprechend ersetzen.

    freundliche Grüße
    Ingo