Huber: Automailer zickt bei Sonderzeichen

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

  1. Hi.

    Wenn du mal das Skript postest gibt es sicher eine einahe Lösung für so ein Problem. =)

    mfg

    Phil Z.

    1. 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

      1. 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.

        --
        水-金-地-火-木-土-天-海-冥
        1. 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.

          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.

          1. 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ß.)

            --
            水-金-地-火-木-土-天-海-冥
  2. 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

    --
    Teiltransparente Bereiche
    selfcode: sh:| br:> ie:% mo:) va:) de:] zu:) fl:( ss:| ls:[
  3. 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

  4. 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.

    --
    Javascript ist toll (Perl auch!)
    1. Läuft alles wie am Schnürchen.

      Von derart hilfreichen Antworten könnten sich manche hier mal ein Scheibchen abschneiden.

      Danke
      Huber

      1. 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&copy, 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.

        --
        Javascript ist toll (Perl auch!)
    2. 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