Peter Thomassen: mail() - Irgendwas klappt da nicht - aber was?

Hi ihr,
ich bin am Verzweifeln. Nachdem mir Hendryk so schön bei meinem
Checkboxproblem geholfen hat, lege ich euch jetzt den ganzen
Code for die Nase, denn ich komme einfach nicht mehr weiter.
Schickt euch mal eine E-Mail mit dem Mailer, macht aber vorher
oben beim Bcc die Häkchen weg. Und baut keinen Unsinn. Naja, es
werden halt in der Mail diverse Ergänzungen gemacht, z.B. Style-
Sheet-Definitionen usw.
Das Problem liegt _immer_ bei den Anführungszeichen und bezieht
sich auf die gesamte Mail, nicht nur auf folgende Zeile; diese
soll nur als Beispiel dienen:

$text .= "</p>\n\n<p class="center">...";

Eigentlich müsste da ja folgendes rauskommen:

[der bisherige Inhalt von $text]</p>

<p class="center">...

Es kommt aber:

[der bisherige Inhalt von $text]</p>

<p class=enter">...

Das Anführungszeichen sowie der darauffolgende Buchstabe werden
einfach verschluckt! Nach dem Senden der Mail erhält man eine
Bestätigung, da wird alles richtig gemacht! Aber in der ver-
schickten Mail fehlen das " und das darauff. Zeichen!
Nein, es liegt nicht am Hoster, Puretec hat das Problem auch.

Der Link zum Testen:
http://asc0000.calibra-web.de/?page=special&subpage=mailer
Der Link zum Code:
http://asc0000.calibra-web.de/?page=special&subpage=mailer&show_source=1

Benutzerdaten:
User: test
Pass: test

Bitte helft mir!
Peter

  1. Moin

    Es kommt aber:

    [der bisherige Inhalt von $text]</p>

    <p class=enter">...

    Das Anführungszeichen sowie der darauffolgende Buchstabe werden
    einfach verschluckt! Nach dem Senden der Mail erhält man eine

    Kann ich nicht bestätigen. Bei mir kommt:

    <p class="center">

    Problemlos an. Lediglich die magic_quotes hast du vergessen rauszutun:
    huhu "

    (das war mal   huhu "  ). Am besten machst du mit dem Text den du vom Formular bekommst etwas in der Art von  nl2br(htmlentities(stripslashes(   ))).

    --
    Henryk Plötz
    Grüße aus Berlin

  2. Hallo Peter,

    nicht eine direkte Hilfe, eher ein Erfahrungsbericht:

    ich hatte in meiner Anfangszeit auch einigen trouble mit mail(), der Ursprung war eine Unart die ich mir angewöhnt hatte:
    wenn ich $blabla zusammenbaute in denen html Code enthalten war setzte ich "aussen" ' um die im html-code enthaltenen " Abfolgen beibehalten zu können und nicht so viel maskieren zu müßen (ja ich weiß, ich bin faul *g*), eine Sache die in selbst definierten Variablen wunderbar funktioniert, nur eben bei der php-eigenen mail() nicht, mail() reagiert da sehr allergisch.
    Daraus folgere ich, daß dein Problem definitiv mit den " bzw. deren Maskierung zusammen hängt - sprich da ist irgendwo was zuviel/zuwenig - das zu finden ist hart, viel Glück dabei ...

    Gruß
    der_bernd

  3. Hi,
    ich hab des Rätsels Lösung: Im HTML-Teil der Mail darf man nicht
    =", sondern nur =3D" schreiben. Fragt mich nicht, wieso.

    Bye,
    Peter

    1. Moin

      ich hab des Rätsels Lösung: Im HTML-Teil der Mail darf man nicht
      =", sondern nur =3D" schreiben. Fragt mich nicht, wieso.

      Aber das hast du doch selbst im Header festgelegt:
      Content-Transfer-Encoding: quoted-printable

      Das heisst alle komischen Zeichen müssen durch = und den Hex-Code des Zeichens escaped werden, damit muss das =-Zeichen auch selbst escaped werden.

      (Mein Sylpheed hat das wohl ignoriert und mir trotzdem alles richtig angezeigt)

      Mehr findest du im RFC 1341 Abschnitt 5.1

      --
      Henryk Plötz
      Grüße aus Berlin