Luis: Zeilenumbrüche bei Mail

Hallo liebe Fachleute,

ich bin am Ende meiner Weisheit. Ich betreibe ein Forum für Uhren und Schmuck, bei dem angemeldete Mitglieder die Forumspost per Mail bekommen können. So weit so gut.

Nun hat diese Forumspost per Mail aber einen Haken, der nur bei Netscape auftritt!!
Netscape interpretiert alle Zeilenumbrüche (/n), die ich formatiert habe doppelt. Aus Zeilenumbrüchen werden Absätze, aus normalen Absätzen riesen Abstände. Dieser "Fehler" tritt nur auf, wenn die Forumspost mit Netsc. empfangen wird, bei Outlook Express nicht!

Hier ein Auszug aus dem Quelltext:

$to = "$ntoemail";
                        $from = "$boardname <$nfromemail>";
                        $subject = "[$forumname] Neue Nachricht im Forum";

$message .= "\n";
                        $message .= "$boardtitle\n";
                        $message .= "$boardurl/$forumsummaryprog\n";
                        $message .= "---------------------------------------------------------------------\n\n";
                        $message .= "Hallo, $inmembername brachte eine Antwort im Forum:\n\n";
                        $message .= "Forum:            $category\n ";
                        $message .= "Abteilung:       $forumname\n";
                        $message .= "Betreff:            $topictitle\n";
                        $message .= "Beschreibung: $topicdescription\n";
                        $message .= "Nachricht:        $inpost\n\n";
                        $message .= "Klick auf den folgenden Link um direkt zur Diskussion zu gelangen:\n\n";
                        $message .= "$boardurl/$threadprog?forum=$inforum&topic=$intopic\n\n";
                        $message .= "---------------------------------------------------------------------\n";

&sendmail($from, $from, $to, $SMTP_SERVER, $subject, $message );

#################################
Ich hatte ja in meinem "alten" Forum auch diese Forumspost. Allerdings wurde hier das Mailprogramm anders aufgerufen:

foreach $recipient (@recipient) {
     open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n";
     print MAIL "From:$host\n";
     print MAIL "Subject:$subject (Nr. $num) \n";
     print MAIL "To:$recipient\n";
...

kann es am Aufruf des Mailprogramms liegen?

Mit freundlichen Grüßen
Luis Blank

  1. Grüssi

    Netscape interpretiert alle Zeilenumbrüche (/n), die ich formatiert habe doppelt. Aus Zeilenumbrüchen werden Absätze, aus normalen Absätzen riesen Abstände.

    http://www.teamone.de/selfhtml/tchc.htm#a3 - schon gelesen?

    lg bernhard

    1. Hallo,

      danke Bernhard für den Hinweis.
      Wie man Zeilenumbrüche beim Textarea Tag erzwingt oder verhindert, dass weiß ich. Mein konkretes Problem, dass mir das Netsc. Mail Programm zum Beispie hier (zw. "Forum:...." und "Abteilung... " einen doppelten Zeilenumbruch macht:

      $message .= "Forum:            $category\n ";
                              $message .= "Abteilung:       $forumname\n";

      und bei Qutlook wird das richtig wiedergegeben.

      Grüße
      Luis

      Grüssi

      Netscape interpretiert alle Zeilenumbrüche (/n), die ich formatiert habe doppelt. Aus Zeilenumbrüchen werden Absätze, aus normalen Absätzen riesen Abstände.

      http://www.teamone.de/selfhtml/tchc.htm#a3 - schon gelesen?

      lg bernhard

      1. Grüssi,

        hast du die Variablen ($category,$forumname) ge"chomp"t? Ansonsten hab ich dafür leider keine Erklärung. Wenn du die Variablenwerte nirgends änderst, sie nach Empfang chompst, und einfach ausgibst darf kein Fehler auftreten. Du könntest auch mal probieren, an der Konsole dir den Script-Output in eine Datei umzuleiten, und dort nachzusehen: perl forum.pl > x.x

        Dann schaust du in x.x nach, dort dürfte keine Leerzeile sein. Wenn doch, dann stell dein Script mal als txt online, damit man es sich ansehen kann

        lg bernhard

        1. Hallo Bernhard,

          gechompt habe ich die Variablen nicht. Es ist aber bemerkenswert, dass Netscape (und nur Netscape) zum Beispiel hier in Zeile 1323

          $message .= "Nachricht:        \n$inpost\n\n";

          nach "Nachricht:       " also mittendrinn nicht am Ende einen doppelten ZEilenumbruch macht!

          Ich habe das ganze post script unter http://www.schmuckunduhren.de post.txt ins Internet gestellt.

          Vielen Dank für deine Mühe

          Luis

          Grüssi,

          hast du die Variablen ($category,$forumname) ge"chomp"t? Ansonsten hab ich dafür leider keine Erklärung. Wenn du die Variablenwerte nirgends änderst, sie nach Empfang chompst, und einfach ausgibst darf kein Fehler auftreten. Du könntest auch mal probieren, an der Konsole dir den Script-Output in eine Datei umzuleiten, und dort nachzusehen: perl forum.pl > x.x

          Dann schaust du in x.x nach, dort dürfte keine Leerzeile sein. Wenn doch, dann stell dein Script mal als txt online, damit man es sich ansehen kann

          lg bernhard

          1. Sorry,

            nochmal der richtige Link:
            http://www.schmuckunduhren.de/post.txt

            mfg Luis

          2. Grüssi,

            gechompt habe ich die Variablen nicht. Es ist aber bemerkenswert, dass Netscape (und nur Netscape) zum Beispiel hier in Zeile 1323

            $message .= "Nachricht:        \n$inpost\n\n";

            nach "Nachricht:       " also mittendrinn nicht am Ende einen doppelten ZEilenumbruch macht!

            hmmm. mächtig langes script ;-) Hab aber leider nix gefunden. Ausser vielleicht s/\n/\n2xy/g; kurz danach, wo ich nicht weiss was das macht.

            Du könntest auch mal probieren, an der Konsole dir den Script-Output in eine Datei umzuleiten, und dort nachzusehen: perl forum.pl > x.x

            Was natürlich völliger Quatsch war :-/ Ich meinte die $message Variable nicht zu versenden, sondern in eine Datei auszugeben! Also statt &sendmail => open(FILE,">x.x"); print FILE $message; close(FILE);

            Das könnte übrigens genausogut einer meiner Fehler sein, ich hab auch immer so blöde Sachen! Oft liegts dann an Fehlern wie z.b. Dass ich das Script im UNIX-Format hätte abspeichern sollen oder ich einen Tabulator eingesetzt habe wo keiner sein sollte :-(

            lg bernhard