Automailer zickt bei Sonderzeichen
Huber
- perl
Servus.
bei meinem Gästebuch von sourceforge.net gibt es die nette FUnktion einer automatischen Mail-Benachrichtigung mit Inhalt des Gästebucheintrages. Leider wird das "ö" nur im Gästebuch zum "ö" und in der Email zum "& o u m l ;".
Gibt es für dieses Problem eine einfache LÖsung oder muss man da tiefer einsteigen?
Dank im Vorraus
Huber
Hi.
Wenn du mal das Skript postest gibt es sicher eine einahe Lösung für so ein Problem. =)
mfg
Phil Z.
Hi.
Wenn du mal das Skript postest gibt es sicher eine einahe Lösung für so ein Problem. =)
Das Skript hat so rund 1500 Zeilen und konnte hier nicht gepostet werden. Deshalb hatte ich auch allgemein nach einer nachvollziehbaren Hilfestellung gesucht.
Es befindet sich unter http://edv.cs.tu-berlin.de/~noway/perl/Guestbook-skript.txt
Dank im Vorraus
Huber
Hey,
das ist ein weit bekanntes Programm. Du hast nicht die neueste Version. Mache umgehend ein Upgrade. http://nms-cgi.sf.net/scripts.shtml
Sollte dein Problem damit nicht behoben sein, lies http://nms-cgi.sf.net/support1.html. Urheber des Programms ist Jonathan Stowe von den London Perl Mongers, CPAN-ID JSTOWE, gellyfish auf Perlmonks.
Hey,
das ist ein weit bekanntes Programm. Du hast nicht die neueste Version. Mache umgehend ein Upgrade. http://nms-cgi.sf.net/scripts.shtmlSollte dein Problem damit nicht behoben sein, lies http://nms-cgi.sf.net/support1.html. Urheber des Programms ist Jonathan Stowe von den London Perl Mongers, CPAN-ID JSTOWE, gellyfish auf Perlmonks.
Das war leider nicht sonderlich hilfreich. Das Update enthält keinerlei Veränderungen des Automailers und die Standard-FAQs wie "ist das Gerät eingeschaltet?" "Gibt es in Ihrer Stadt schon elektrischen Strom?" sind leider auch witzlos.
Danke trotzdem.
Ich habe im Thread gesehen, dass du schon Erfolg hast.
Dennoch: witzlos ist die Supportseite, die ich verlinkt habe, insgesamt nicht; es gibt eine Mailingliste, ein Kontaktformular, Hinweise, wie man Bugs einreicht...
Zusätzlich habe ich dir mit dem Zaunpfahl gewunken, dass du auch den Urheber direkt auffinden und ansprechen kannst, falls alle Stricke reißen. (Eher unwahrscheinlich bei NMS, aber wer weiß.)
Moin,
Die Lösung zu Deinem Problem basiert im wesentlichen auf 2 Funktionen:
escape_html ( INPUT )
unescape_html ( INPUT )
Du müßtest also die Daten vor dem Senden der E-Mail wieder "unescapen", damit keine Enitites in der Mail ankommen. Mit Perl kenne ich mich leider nicht aus. Die Funktion einfach umkehren ist vielleicht nicht so sinnvoll, weil damit auch andere Entities wieder zurückübersetzt werden.
Vielleicht wäre es am einfachsten die Umlaut-Entities wieder durch die Umlaute zu ersetzen, bevor die Mail gesendet wird. Das beträfe ja nur ä,ö,ü, Ä,Ö,Ü und ß.
In PHP gibt es 2 Funktionen, einmal
htmlentities() und htmlspecialchars().
Ich könnte mir vorstellen, daß es ähnliches auch in Perl gibt. In sofern wäre es eine Überlegung, statt der htmlentities-Entsprechung nur das htmlspecialchars-Analog zu verwenden, welches dann Umlaute erst gar nicht in Entities umformen würde.
mit freundlichen Grüßen
Ulrich
Hallo
bei meinem Gästebuch von sourceforge.net gibt es die nette FUnktion einer automatischen Mail-Benachrichtigung mit Inhalt des Gästebucheintrages. Leider wird das "ö" nur im Gästebuch zum "ö" und in der Email zum "& o u m l ;".
Wie viele vorkommen von "Content-Type" und "Contennt-Transfer-Encoding" gibt es in der Antwortmail und welche Werte haben die?
Herzliche Grüße
Wolfgang
bei meinem Gästebuch von sourceforge.net gibt es die nette FUnktion einer automatischen Mail-Benachrichtigung mit Inhalt des Gästebucheintrages. Leider wird das "ö" nur im Gästebuch zum "ö" und in der Email zum "& o u m l ;".
einmal evtl. hier
sub email_data
{
my ($data) = @_;
if ( defined $smtp )
{
$data =~ s#\n#\015\012#g;
$data =~ s#^\.#..#mg;
$smtp->print(unescape_html($data)) or die "write to SMTP server: $!";
}
else
{
print SENDMAIL unescape_html($data) or die "write to sendmail pipe: $!";
}
}
Aber es dürfte Schwierigkeiten beim lesen geben, da die Mail ohne Zeichensatzangabe verschickt wird, also z.b. keine Umlaute erlaubt sind.
Du müßtest im Head, also hier:
X-HTTP-Client: [$addr]
X-Generated-By: NMS guestbook.pl v$VERSION
To: $to
Reply-to: $reply
From: $from
Subject: $subject
noch das dazufügen:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"
Gibt es für dieses Problem eine einfache LÖsung oder muss man da tiefer einsteigen?
Ob's die Lösung ist weiß ich nicht. Der code ist nicht unbedingt lesefreundlich.
Struppi.
Läuft alles wie am Schnürchen.
Von derart hilfreichen Antworten könnten sich manche hier mal ein Scheibchen abschneiden.
Danke
Huber
Läuft alles wie am Schnürchen.
Von derart hilfreichen Antworten könnten sich manche hier mal ein Scheibchen abschneiden.
Danke
Bitte, trotzdem ist der Hinweis von 迪拉斯 (paste©, ich versuch das grad auszusprechen) nicht so verkehrt. Wenn du den Autor des Skriptes ansprechen kannst wäre das auch sinnvoll gewesen, dann hätten vielleicht noch mehr Leute was davon gehabt.
Struppi.
Tach.
Kleines Problem gibt es jetzt doch noch:
In den E-Mails werden alle HTML-Tags augeschrieben. Es finden sich also Dinge wie Zeilenumbruch-Tags und "a href" Tags in der E-Mail.
Hast Du dafür auch noch eine schnelle Lösung parat?
Danke im Vorraus
Huber