Zeilenumbrüche bei Mail
Luis
- cgi
0 Bernhard Peissl0 Luis0 Bernhard Peissl0 Luis0 Luis0 Bernhard Peissl
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
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
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
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
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
Sorry,
nochmal der richtige Link:
http://www.schmuckunduhren.de/post.txt
mfg Luis
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