• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mailto und PHP?

Jonny

Neues Mitglied
Hallo,

in meiner Verzweiflung wende ich mich mal hier an die Experten.

Ich habe folgendes Problem.
In einem Forum (wbb) möchte ich eine Forward-Funktion einrichten. Also das automatische Weiterleiten eines Beitrages per Email.

Der Code sieht so aus:
HTML:
<a href="mailto:?subject=$posts[posttopic]&amp;body=$posts[message]"> <span class="normalfont" ><b>Forward</b></span></a>

Das funktioniert auch soweit. Den Empfänger muss man selber eintragen, der Betreff ist der Titel des Beitrags und die Nachricht ist der Inhalt.

Beim letzten Punkt kommen aber die Probleme.
1. Sobald im Beitrag ein Hyperlink oder eine Emailadresse steht, wird der gesamte
Beitrag vor dem Schriftzug Forward angezeigt.(Im Email, wenn man auf den
Text vor dem Forward-Schriftzug klickt, ist die Nachricht dann <span class=.
Der Schriftzug Forward ist dann kein Link mehr.)
2. Im Mail werden die Umbrüche in der Nachricht als <br /> geschrieben.

Wie kann ich also einmal dafür sorgen, dass der Beitrag zwar "ausgelesen" wird aber dass eventuelle Html Befehle in dem Beitrag nicht als solche interpretiert werden.
Wie kann ich diese <br />s im Text vermeiden.

Danke für die Mühe des Lesens und hoffentlich auch für eine Idee.

Jonny
 
Werbung:
Versuchs mal mit

Code:
$body = str_replace("\r\n","<br></br>", $posts[message]);
und binde statt body=$posts[message] body=$body ein.

Dann müsste es eigentlich gehn...
 
Vielen Dank

Danke für die schnelle Antwort.
Auf sowas wäre ich einfach nicht gekommen. Danke

Problem 1 ist damit vollkommen gelöst.
Zu Problem 2 hätte ich noch zwei Fragen.
Die <br /> sind alle weg, aber es werden keine Zeilenümbrüche umgesetzt. Egal ob HTML-Mail oder nicht.
Nach etwas Internetrecherche habe ich herausgefunden, dass im Mailto Befehl ein Zeilenumbruch über %0A erstellt wird. Wie aber müsste ich das in den replace Befehl einsetzen.
Jetzt werden alle im Forum durch BBCode bewirkten Formatierungen im Mail als BBCode angezeigt. Wie kann ich da im replace Befehl einrichten, dass alle BBCodes einfach ignoriert werden also einfach durch nichts (ein Leerzeichen?) ersetzt werden?

Aber auf jeden Fall nochmal vielen Dank.

Jonny

 
Werbung:
Naja, im Prinzip genauso, du definierst erst, was ersetzt werden soll, danach, mit was es ersetzt werden soll und dann, was davon betroffen ist (z.B. der Mailtext).

Kannst du hier auch nochmal nachlesen: PHP: str_replace - Manual

Du kannst jeden einzelnen BBCode-Befehl durch nichts ( "" ) ersetzen lassen, dann werden alle Befehle ausgeblendet, jedoch kannst du die Codes auch durch HTML Code ersetzen, um die Befehle auch in der E-Mail anzuwenden...
 
Zurück
Oben