calypso: blöde frage zum Zeilenumruch

Hi Liste,

also in $mail_header soll mein text stehen, den ich aber noch etwas formatieren wollte.

$text="
blabla in zeile 1 $muhkuh
blablub in zeile 2 mit $weitere
";

hier in $text soll das rein:

$mail_header .= "$text\n\n";

zweite variante geht auch nur als einzeiler:

$mail_header .= "blabla in zeile 1 $muhkuh\n\n";

kann mir jemand helfen den Umbruch zu realisieren?

Danke an alle

  1. also in $mail_header soll mein text stehen, den ich aber noch etwas formatieren wollte.

    $text="
    blabla in zeile 1 $muhkuh
    blablub in zeile 2 mit $weitere
    ";

    hier in $text soll das rein:

    $mail_header .= "$text\n\n";

    Wieso soll in $text "das rein"? Du hast $text doch gerade etwas zugewiesen. Und was soll da in $text rein? Ich sehe da nur, daß in $mail_header was rein soll (nämlich $text), aber nix, wo $text etwas zugewiesen wird.

    zweite variante geht auch nur als einzeiler:

    $mail_header .= "blabla in zeile 1 $muhkuh\n\n";

    Hier ist $text überhaupt nicht vorhanden..

    kann mir jemand helfen den Umbruch zu realisieren?

    Wie meinen? Du schiebst da nur ein paar Buchstaben und Variablen hin und her, die mit der Frage irgendwie nicht so doll in Zusammenhang zu stehen scheinen.

    Also: Deine Frage ist wirklich blöd, und zwar blöd gestellt ;)

    Gruß,
      soenk.e

    1. Hi soenk.e,

      nun, ich habe eine zweiteilige mail im MIME-Format. Der Aufbau ist dieser:

      Mein Problem ist die mehrzeilige Formatierung meines Textes (wo auch wieder variab. vorkommen )

      << bin zu blöd dafür >>

      MfG calypso

      <?
      $boundary = strtoupper(md5(uniqid(time())));
      $dateiname="dummy_vertrag.pdf";
      $datei_inhalt = chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))));

      $header = "From: blue7\n";
      $header .= "MIME-Version: 1.0\n";
      $header .="Content-Type: multipart/mixed; boundary=$boundary\n";
      $header .="--$boundary\n";
      $header .="Content-Type: text/html\n";
      $header .="Content-Transfer-Encoding: quoted-printable\n\n";

      $header .="Hallo, diesen Text möchte ich nur mehrzeilig Fromatieren\n\n";

      $header .="--$boundary\n";
      $header .="Content-Type: application/pdf; name=dummy_vertrag.pdf\n";
      $header .="Content-Transfer-Encoding: base64\n";
      $header .="Content-Disposition: attachment; filename=dummy_vertrag.pdf\n";
      $header .="\n\n".$datei_inhalt;
      $header .="--$boundary--";

      mail("som-mer@web.de","","",$header)
      ?>

      1. nun, ich habe eine zweiteilige mail im MIME-Format. Der Aufbau ist dieser:

        Mein Problem ist die mehrzeilige Formatierung meines Textes (wo auch wieder variab. vorkommen )

        $header .="Hallo, diesen Text möchte ich nur mehrzeilig Fromatieren\n\n";

        Entweder stehst Du auf dem Schlauch oder ich?!

        $header .="Hallo,\ndieser\nText\nist\njetzt\nmehrzeilig.\n\n";

        Gruß,
          soenk.e

        1. Hi soenke,

          apropro "schlauch" <-- vieleicht bedarf es einer abkühlung

          $header .="Hallo,\ndieser\nText\nist\njetzt\nmehrzeilig.\n\n";

          disses funktioniert bei mir nix.

          Hier nochmal das script:

          MfG

          <?
          $boundary = strtoupper(md5(uniqid(time())));
          $dateiname="dummy_vertrag.pdf";
          $datei_inhalt = chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))));

          $header = "From: blue7\n";
          $header .= "MIME-Version: 1.0\n";
          $header .="Content-Type: multipart/mixed; boundary=$boundary\n";
          $header .="--$boundary\n";
          $header .="Content-Type: text/html\n";
          $header .="Content-Transfer-Encoding: quoted-printable\n\n";

          $header .="Hallo,\ndieser\nText\nist\njetzt\nmehrzeilig.\n\n";

          $header .="--$boundary\n";
          $header .="Content-Type: application/pdf; name=dummy_vertrag.pdf\n";
          $header .="Content-Transfer-Encoding: base64\n";
          $header .="Content-Disposition: attachment; filename=dummy_vertrag.pdf\n";
          $header .="\n\n".$datei_inhalt;
          $header .="--$boundary--";

          mail("bla@bla.de","","",$header)
          ?>

          1. $header .="Hallo,\ndieser\nText\nist\njetzt\nmehrzeilig.\n\n";

            disses funktioniert bei mir nix.

            Definiere "funktioniert nix". Wo funktioniert nix? Gib die Variable mit

            echo "<pre>".htmlentities($header)."</pre>";

            in einer Seite aus und Du wirst sehen, daß es funktioniert. Das Problem muß also woanders liegen. Zum Beispiel ist der Kopf der Mail nicht vom Körper getrennt, es fehlt die Leerzeile (siehe vierte Zeile unten).
            Weiterhin sind die Grenzen nicht überall identisch, oben definierst Du boundary=$boundary, im Nachrichtenkörper benutzt Du am Ende --$boundary--.
            Problematisch eventuell auch, daß Zeilenumbrüche bei QP-Kodierung mit \r\n angegeben werden müssen statt nur \n (obwohl die meisten Mailer da eigentlich sehr tolerant sein dürften).

            $header = "From: blue7\n";
            $header .= "MIME-Version: 1.0\n";
            $header .="Content-Type: multipart/mixed; boundary=$boundary\n";

            Hier fehlt $header.="\n";

            $header .="--$boundary\n";
            $header .="Content-Type: text/html\n";
            $header .="Content-Transfer-Encoding: quoted-printable\n\n";

            $header .="Hallo,\ndieser\nText\nist\njetzt\nmehrzeilig.\n\n";

            Wenn's alles nichts hilft, schick Dir selbst eine Mail und benutze die als Vorlage.

            Gruß,
              soenk.e

            1. Hi soenk.e,

              erstmal vielen dank!!

              echo "<pre>".htmlentities($header)."</pre>";

              habe ich beim abschicken ausgegeben. Es ist wie Du gesagt hast:

              dort funktioniert der Zeilenumbruch. Nur in der ankommenden Mail

              steht alles in einer Zeile. Alles weitere hat auch nix geholfen.

              was bleibt ist der Hinweis:

              Weiterhin sind die Grenzen nicht überall identisch, oben
              definierst Du boundary=$boundary, im Nachrichtenkörper benutzt
              Du am Ende --$boundary--.

              bedeutet das am Ende müßte stehen?

              --boundary=$boundary--.

              MfG calypso

              1. Hi soenk.e,

                erstmal vielen dank!!

                fehler gefunden...

                in der mime-mail im header mußte überall

                \r\n

                stehen.

                dann klappt's auch mit dem zeilenumbruch.

                Gruß calypso

                ...
                $header .= "MIME-Version: 1.0\r\n";
                $header .="Content-Type: multipart/mixed; boundary=$boundary\r\n";
                $header.="\r\n";
                $header .="--$boundary\n";
                $header .="Content-Type: text/html\r\n";
                ...

                1. fehler gefunden...
                  in der mime-mail im header mußte überall
                  \r\n
                  stehen.
                  dann klappt's auch mit dem zeilenumbruch.

                  Aha, dann lag ich ja nicht so ganz weit daneben, auch wenn ich es wirklich nicht für möglich gehalten hätte, daß ein Programm so empfindlich reagiert.. :)
                  Interessehalber: Welchen Mailer hast Du zum Empfang benutzt?

                  Gruß,
                    soenk.e

                  1. Aha...

                    -->
                    als Empfänger hab ich web.de und outlook 5 local, den  über ein

                    anderen server. Beim Letzteren gibts noch prob's mit dem Empfang der

                    mail.

                    Mal abwarten ob der nur langsam, oder beim script noch finetuning

                    von nöten ist.

                    gruß calypso