rolf: die - cannot close email

Guten morgen,
ich hab da ein problem mit einem per script
Eigentlich sollte es funktionieren aber das tut es nicht...
Wie kann es sein dass im error log bei

close (MAIL) || die "Cannot close mail\n";

also mail schliessen die mail nicht geschlossen werden kann?
Ich habe bei
open(MAIL,"|$mailprog -t") || die "Cannot open mailprog\n";
kein fehler
Im errorlog steht nur:
[Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] malformed header from script. Bad header=517 Syntax error.: mailer.cgi, referer: http://www.fun.com/contact.htm
[Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] Cannot close mail, referer: http://www.fun.com/contact.htm

was bedeutet header=517 ?
Gruss
rolf

  1. Guten morgen,
    also ich denke es liegt am mailprogram

    Die frage ist, warum kann das script die mail nicht schliessen?
    gruss
    rolf

  2. [Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] malformed header from script. Bad header=517 Syntax error.: mailer.cgi, referer: http://www.fun.com/contact.htm

    Headerfehler.

    [Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] Cannot close mail, referer: http://www.fun.com/contact.htm

    Oberste Regel: Frage *immer* den Text der internen Fehlermeldung ab:

    ... or die "Cannot do this: $!";

    Poste bitte den Inhalt von $!.

    was bedeutet header=517 ?

    Dass es den Header "517" nicht gibt. Folgender Schnipsel sollte das reproduzieren:

    print "Content-type: text/plain\n";  
    print 517;
    

    Poste bitte den vollständigen Code.

    Siechfred

    --
    Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
    1. hallo,

      [Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] Cannot close mail, referer: http://www.fun.com/contact.htm

      Oberste Regel: Frage *immer* den Text der internen Fehlermeldung ab:

      ... or die "Cannot do this: $!";

      Poste bitte den Inhalt von $!.

      also da kommt:
      [Thu Sep 18 06:29:14 2008] [error] [client 92.104.156.1] malformed header from script. Bad header=517 Syntax error.: mailer.cgi, referer: http://www.fun.com/contact.htm

      [Thu Sep 18 06:29:14 2008] [error] [client 92.104.156.1] Cannot close mail Broken pipe, referer: http://www.fun.com/contact.htm

      raus,

      was bedeutet header=517 ?

      Dass es den Header "517" nicht gibt. Folgender Schnipsel sollte das reproduzieren:

      print "Content-type: text/plain\n";

      print 517;

      
      >   
      > Poste bitte den vollständigen Code.  
        
        
      da gibts keinen weiteren code...  
      Also vor wenigen tagen hat ein hacker bzw. cracker den server beschädigt  
      mit einem program welches bestimmte dateien gelöscht oder verändert hat:  
      alle main,index,logo wurden verändert und login dateien gelöscht unabhängig von datei-endung- \*.jpg,\*.php,\*.cgi,\*.pl...etc.  
      Könnte es daher sein dass das mailprogram nicht mehr tut wie es tun soll?  
      MfG  
      Rolf  
      
      
      1. nochmal,

        Dass es den Header "517" nicht gibt. Folgender Schnipsel sollte das reproduzieren:

        print "Content-type: text/plain\n";

        print 517;

        
        > >   
        > > Poste bitte den vollständigen Code.  
        >   
          
        meinst Du den code vom script?  
        Warum sollte im script  
        print 517;[/code]  
        stehen?  
        Wie gehabt das script funktionierte immer einwandfrei, nur  
        eben jetzt nach der attacke scheint was mit dem mailprogram nicht zu klappen.  
          
        Hier dennoch der vollständige code vom mailscript:  
        sub send\_mail {  
          
        $mailprog = '/usr/sbin/sendmail';  
        # Localize variables used in this subroutine.                            #  
        local($print\_config,$key,$sort\_order,$sorted\_field);  
          
        # Open The Mail Program  
        open(MAIL,"|$mailprog -t") || die "Cannot open mailprog\n";  
          
        print MAIL "To: webmaster\@fun.com\n";  
        if (!$Config{'email'}) { print MAIL "From: nomail\@fun.com\n"; }  
        else  
        { print MAIL "From: $Config{'email'}\n"; }  
          
        # Check for Message Subject  
        if ($Config{'subject'}) { print MAIL "Subject: $Config{'subject'}\n" }  
        else                    { print MAIL "Subject: WWW Form Submission\n" }  
        print MAIL "\n\n";  
        print MAIL "Fun mail:\n";  
        print MAIL "-" x 75 . "\n";  
          
        if (@Print\_Config) {  
        foreach $print\_config (@Print\_Config) {  
        if ($Config{$print\_config}) {  
        print MAIL "$print\_config: $Config{$print\_config}\n";  
        }  
        }  
        }  
          
        # Sort alphabetically if specified:                              #  
        if ($Config{'sort'} eq 'alphabetic') {  
        foreach $field (sort keys %Form) {  
          
        # If the field has a value or the print blank fields option      #  
        # is turned on, print out the form field and value.              #  
        if ($Config{'print\_blank\_fields'} || $Form{$field} ||  
        $Form{$field} eq '0') {  
        print MAIL "$field: $Form{$field}\n";  
        }  
        }  
        }  
          
        # If a sort order is specified, sort the form fields based on that.  #  
        elsif ($Config{'sort'} =~ /^order:.\*,.\*/) {  
          
        # Remove extraneous line breaks and spaces, remove the order:        #  
        # directive and split the sort fields into an array.                 #  
        $Config{'sort'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;  
        $Config{'sort'} =~ s/(\s+)?\n+(\s+)?//g;  
        $Config{'sort'} =~ s/order://;  
        @sorted\_fields = split(/,/, $Config{'sort'});  
          
        # For each sorted field, if it has a value or the print blank        #  
        # fields option is turned on print the form field and value.         #  
        foreach $sorted\_field (@sorted\_fields) {  
        if ($Config{'print\_blank\_fields'} || $Form{$sorted\_field} ||  
        $Form{$sorted\_field} eq '0') {  
        print MAIL "$sorted\_field: $Form{$sorted\_field}\n";  
        }  
        }  
        }  
          
        # Otherwise, default to the order in which the fields were sent.     #  
        else {  
          
        # For each form field, if it has a value or the print blank          #  
        # fields option is turned on print the form field and value.         #  
        foreach $field (@Field\_Order) {  
        if ($Config{'print\_blank\_fields'} || $Form{$field} ||  
        $Form{$field} eq '0') {  
        print MAIL "$field: $Form{$field}\n";  
        }  
        }  
        }  
          
        print MAIL "-" x 75 . "\n";  
          
        # Send any specified Environment Variables to recipient              #  
        print MAIL ".$ip\_now,.$ENV{'HTTP\_USER\_AGENT'}\n";  
        print MAIL ".$referer\n";  
          
        close (MAIL) || die "Cannot close mail $!\n";  
        }  
          
        \----------------------------------------------  
          
        MfG
        
        1. Warum sollte im script
          print 517;[/code]
          stehen?

          "517 Syntax error" deutet darauf hin, dass in einem Deiner Mail-Header ein Fehler drin ist. Allerdings kann man anhand Deines Codes nicht sagen, welcher das ist. Teste also zuerst, ob Dein Programm wie erwartet funktioniert, wenn die Headerangaben hardcodiert sind.

          Dann prüfe, ob diejenigen Header-Felder in Ordnung sind, welche aus %Config kommen. Ich hätte da einen Verdacht, der auf ein Problem hier:

          if (!$Config{'email'}) { print MAIL "From: nomail@fun.com\n"; }
          else
          { print MAIL "From: $Config{'email'}\n"; }

          hinweist. Überprüfst Du die Formulareingaben auf Validität? Wenn ja, wo und wie?

          Der "broken pipe"-Fehler ist m.E. ein Folgefehler.

          Siechfred

          --
          Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
          1. hallo Siechfred,

            Warum sollte im script
            print 517;[/code]
            stehen?

            "517 Syntax error" deutet darauf hin, dass in einem Deiner Mail-Header ein Fehler drin ist. Allerdings kann man anhand Deines Codes nicht sagen, welcher das ist. Teste also zuerst, ob Dein Programm wie erwartet funktioniert, wenn die Headerangaben hardcodiert sind.

            hardcodiert? Was bedeutet das?

            Dann prüfe, ob diejenigen Header-Felder in Ordnung sind, welche aus %Config kommen. Ich hätte da einen Verdacht, der auf ein Problem hier:

            if (!$Config{'email'}) { print MAIL "From: nomail@fun.com\n"; }
            else
            { print MAIL "From: $Config{'email'}\n"; }

            und das wäre?

            hinweist. Überprüfst Du die Formulareingaben auf Validität? Wenn ja, wo und wie?

            ja bevor das mailprogram geöffnet wird und zwar so:

            sub check_required {

            The following insures that there were no newlines in any fields which  #

            will be used in the header.

            $comm = $Form{'comment'}||'';                                            #
            if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m || $comm =~  /(href|script)/m) {
            &error('request_method');
            }

            For each require field defined in the form:                            #

            foreach $require (@Required) {
            if ($require eq 'email' && !&check_email($Config{$require}))
            {
            push(@error,$require);
            }

            Otherwise, if the required field is a configuration field and it   #

            has no value or has been filled in with a space, send an error.    #

            elsif (defined($Config{$require})) {
            unless ($Config{$require}) {
            push(@error,$require);
            }
            }

            If it is a regular form field which has not been filled in or      #

            filled in with a space, flag it as an error field.                 #

            elsif (!$Form{$require}) {
            push(@error,$require);
            }
            }

            If any error fields have been found, send error message to the user.   #

            if (@error) { &error('missing_fields', @error) }
            }
            ---------------------------------------
            und

            sub general {
            if (defined($Config{'email'}) && !&check_email($Config{'email'}) && ($Config{'email'} ne '')||!$ENV{'HTTP_USER_AGENT'}||!$Config{'subject'})
            {
            print "Content-type: text/html\n\n";
            print "fatal error: you have a bad email or the form was not successful,from where you submit it\n";
            exit;
            }
            }
            ---------------------------------------
            und
            sub check_email {

            Initialize local email variable with input to subroutine.              #

            $email = $_[0];

            if ($email =~ /(@.*@)|(/)|(,)|(%)|(<)|(..)|(@.)|(.@)|(^.)/ ||

            the e-mail address contains an invalid syntax.  Or, if the         #

            syntax does not match the following regular expression pattern     #

            it fails basic syntax verification.                                #

            $email !~ /^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z0-9]+)(]?)$/) {

            return 0;
            }

            else {

            Return a true value, e-mail verification passed.                   #

            return 1;
            }
            }

            Der "broken pipe"-Fehler ist m.E. ein Folgefehler.

            MfG
            rolf

            1. hardcodiert? Was bedeutet das?

              Du schreibst die Headerangaben im Klartext rein, so wie Du es bei "To:" gemacht hast. Erst wenn das fehlerfrei funktioniert, dann setze die (geprüften) Inhalte von %Config ein.

              und das wäre?

              Ein unzulässiges Format oder eine invalide Absenderdomain (RFC 822 und RFC 2822 könnte ein Ansatz sein), sendmail ist da nach meiner Erfahrung sehr restriktiv.

              sub check_email {

              Die ist schrecklich, sorry :)

              Initialize local email variable with input to subroutine.              #

              $email = $_[0];

              if ($email =~ /(@.*@)|(/)|(,)|(%)|(<)|(..)|(@.)|(.@)|(^.)/ ||

              the e-mail address contains an invalid syntax.  Or, if the         #

              syntax does not match the following regular expression pattern     #

              it fails basic syntax verification.                                #

              $email !~ /^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z0-9]+)(]?)$/) {

              return 0;
              }

              else {

              Return a true value, e-mail verification passed.                   #

              return 1;
              }
              }

              Die passt nämlich auch auf "@d@-.42", was in der Tat eine nicht valide E-Mail wäre. Ich würde Dir raten, die Absenderadresse einfach nur zu entschärfen (Bereinigung um nicht erlaubte Zeichen), sie im Body der Mail unterzubringen und den "From"-Header ganz wegzulassen.

              Siechfred

              --
              Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
              1. hi Siechfred,

                hardcodiert? Was bedeutet das?

                Du schreibst die Headerangaben im Klartext rein, so wie Du es bei "To:" gemacht hast. Erst wenn das fehlerfrei funktioniert, dann setze die (geprüften) Inhalte von %Config ein.

                hmmm, was ausser klartext würde den fehlerfrei funktionieren?

                und das wäre?

                Ein unzulässiges Format oder eine invalide Absenderdomain (RFC 822 und RFC 2822 könnte ein Ansatz sein), sendmail ist da nach meiner Erfahrung sehr restriktiv.

                sub check_email {

                Die ist schrecklich, sorry :)

                warum? Musste einen namen finden :)

                Initialize local email variable with input to subroutine.              #

                $email = $_[0];

                if ($email =~ /(@.*@)|(/)|(,)|(%)|(<)|(..)|(@.)|(.@)|(^.)/ ||

                the e-mail address contains an invalid syntax.  Or, if the         #

                syntax does not match the following regular expression pattern     #

                it fails basic syntax verification.                                #

                $email !~ /^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z0-9]+)(]?)$/) {

                return 0;
                }

                else {

                Return a true value, e-mail verification passed.                   #

                return 1;
                }
                }

                Die passt nämlich auch auf "@d@-.42", was in der Tat eine nicht valide E-Mail wäre. Ich würde Dir raten, die Absenderadresse einfach nur zu entschärfen (Bereinigung um nicht erlaubte Zeichen), sie im Body der Mail unterzubringen und den "From"-Header ganz wegzulassen.

                "From"-Header weglassen? Wie soll ich dann auf emails antworten?
                Also es ist so, ich habe jetzt diese 3 prüf subs deaktiviert gehabt und es auch ohne "From" versucht, selbst dann kam der 500 error mit dem üblichen error log eintrag.
                Weiss echt nicht was das sein könnte.
                Wenn ich den sendmail deaktivier, dann bringt er die bestätigungs seite vom script, also dann gehts.
                MfG
                rolf

                1. hmmm, was ausser klartext würde den fehlerfrei funktionieren?

                  open MAIL, "|", $sendmail or die "Cannot open $sendmail: $!";  
                  print MAIL "To: foo@example.org\n";  
                  print MAIL "Subject: Testmail\n";  
                  print MAIL "Content-type: text/plain; charset=UTF-8\n\n"  
                  print MAIL "Here comes the sun."  
                  close MAIL or die "Cannot close $sendmail: $!, $?";
                  

                  "From"-Header weglassen? Wie soll ich dann auf emails antworten?

                  Du hast die Angabe im Body, das sollte doch reichen. Ansonsten versuche es mit "Reply-To:" statt "From:". Aber wie gesagt, es ist nur eine Vermutung, das Debuggen Deines Scripts kann ich Dir nicht abnehmen.

                  Also es ist so, ich habe jetzt diese 3 prüf subs deaktiviert gehabt und es auch ohne "From" versucht, selbst dann kam der 500 error mit dem üblichen error log eintrag.

                  Wie gesagt, versuche mal den obigen Schnipsel.

                  Wenn ich den sendmail deaktivier, dann bringt er die bestätigungs seite vom script, also dann gehts.

                  Ist ja auch klar, weil keine der die-Anweisungen zieht. Ansonsten kann ich Dir nur wärmstens Net::SMTP empfehlen, sofern Du einen Mailserver hast.

                  Siechfred

                  --
                  Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
                  1. hi Siechfred,

                    hmmm, was ausser klartext würde den fehlerfrei funktionieren?

                    open MAIL, "|", $sendmail or die "Cannot open $sendmail: $!";

                    print MAIL "To: foo@example.org\n";
                    print MAIL "Subject: Testmail\n";
                    print MAIL "Content-type: text/plain; charset=UTF-8\n\n"

                    da fehlt ein ;
                    print MAIL "Content-type: text/plain; charset=UTF-8\n\n";

                    hier auch ;

                    print MAIL "Here comes the sun."
                    close MAIL or die "Cannot close $sendmail: $!, $?";

                    
                    >   
                    > > "From"-Header weglassen? Wie soll ich dann auf emails antworten?  
                    >   
                      
                    also ich habs nach deiner version versucht und dabei kam wieder einmal ein 500 error mit dem log eintrag:  
                    [Sat Sep 20 19:49:57 2008] [error] [client 92.104.156.16] malformed header from script. Bad header=517 Syntax error.: mailer.cgi, referer: http://www.fun.com/contact.htm  
                    [Sat Sep 20 19:49:57 2008] [error] [client 92.104.156.16] Cannot close /usr/sbin/sendmail: Broken pipe, -1 at mailer.cgi line 362., referer: http://www.fun.com/contact.htm  
                      
                    In line 362 steht  
                    close MAIL or die "Cannot close $mailprog: $!, $?";  
                      
                      
                    
                    > Du hast die Angabe im Body, das sollte doch reichen. Ansonsten versuche es mit "Reply-To:" statt "From:". Aber wie gesagt, es ist nur eine Vermutung, das Debuggen Deines Scripts kann ich Dir nicht abnehmen.  
                    >   
                      
                    ja ist klar, aber was komisch ist, ist, früher funktionierte das script und jetzt plötzlich nicht mehr?  
                    Meinst du nicht dass es vielleicht doch am server liegt?  
                    Wie heisst der haupt ordner wo normalerweise die sendmail dateien liegen auf einem linux apache server?  
                    Vielleicht "usr" weil oben ja #!/usr/bin/perl -w  
                      
                    steht?  
                      
                    
                    > Wie gesagt, versuche mal den obigen Schnipsel.  
                    >   
                      
                    hab ich :)  
                      
                    
                    > > Wenn ich den sendmail deaktivier, dann bringt er die bestätigungs seite vom script, also dann gehts.  
                    >   
                    > Ist ja auch klar, weil keine der die-Anweisungen zieht. Ansonsten kann ich Dir nur wärmstens [Net::SMTP](http://perldoc.perl.org/Net/SMTP.html) empfehlen, sofern Du einen Mailserver hast.  
                      
                      
                    das script hab ich, weil ich auf spam gerne verzichte und daher keine email angezeigt wird auf der webseite. Ausserdem ist das script noch mit einem webshop verknüpft, was natürlich auch nicht mehr funktioniert, weil ich keine mails mehr empfange von da bzw. vom mail script.  
                    Der provider hat mir zwar gesagt er würde das problem weiterleiten, aber es geht ja noch nicht.  
                    Auf dem server sind im "etc" ordner dateien neu hochgeladen worden namens  
                    bashrc, group, host.conf, hosts, ld.so.cache, localtime, mtab, nsswitch.conf,passwd, resolv.conf, services, shadow, termcap, wgetrc  
                    Was wäre den für das sendmail notwendig was auf einem server liegen muss?  
                    MfG  
                    
                    
                    1. Hallo rolf!

                      da fehlt ein ;

                      Angesichts des guten Codes, das Siechfred immer liefert, sind solche »im-Eifer-Des-Gefechts-entstandenen-Tipp-Fehler« zu verzeihen ;) Aber ich glaube, ihn (vom Forum her) so gut zu kennen, dass er sich sogar darüber freut, wenn man sie ihm dezent aufzeigt.

                      ja ist klar, aber was komisch ist, ist, früher funktionierte das script und jetzt plötzlich nicht mehr?
                      Meinst du nicht dass es vielleicht doch am server liegt?
                      Wie heisst der haupt ordner wo normalerweise die sendmail dateien liegen auf einem linux apache server?
                      Vielleicht "usr" weil oben ja #!/usr/bin/perl -w
                      steht?

                      Ich hatte mal bei meinem frühreren Provider das Problem, dass der Pfad zu sendmail so mal mir nichts dir nichts über Nacht geändert wurde. Vielleicht liegt es bei Dir auch daran, und Du solltest Deinen Provider auf jeden Fall fragen.

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --

                      _ - jenseits vom delirium - _
                      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                      Nichts ist unmöglich? Doch!
                      Heute schon gegökt?
                      All'alba vincerò!
                      1. hi Patrick,

                        da fehlt ein ;

                        Angesichts des guten Codes, das Siechfred immer liefert, sind solche »im-Eifer-Des-Gefechts-entstandenen-Tipp-Fehler« zu verzeihen ;) Aber ich glaube, ihn (vom Forum her) so gut zu kennen, dass er sich sogar darüber freut, wenn man sie ihm dezent aufzeigt.

                        ja ich hoffe doch :)
                        Könnte ja auch sein, daas jemand unerfahrenes den code kopiert und sich dann wundert über die fehler vom script :)

                        ja ist klar, aber was komisch ist, ist, früher funktionierte das script und jetzt plötzlich nicht mehr?
                        Meinst du nicht dass es vielleicht doch am server liegt?
                        Wie heisst der haupt ordner wo normalerweise die sendmail dateien liegen auf einem linux apache server?
                        Vielleicht "usr" weil oben ja #!/usr/bin/perl -w
                        steht?

                        Ich hatte mal bei meinem frühreren Provider das Problem, dass der Pfad zu sendmail so mal mir nichts dir nichts über Nacht geändert wurde. Vielleicht liegt es bei Dir auch daran, und Du solltest Deinen Provider auf jeden Fall fragen.

                        Aha könnte auch sein.
                        Ich habe jetzt das script auf einem anderen server geladen und die urls zum script in den html dokumenten darauf gesetzt, scheint jetzt alles zu klappen. Ist halt umständlicher so, aber wenigstens können mich die leut anschreiben.
                        So wie ich das sehe liegt das problem am senden der email,
                        das sendmail program scheint beim öffnen ja kein problem zu haben.

                        Im error log stand dann auch noch
                        [Sat Sep 20 19:47:51 2008] [error] [client 92.104.156.1] Cannot close /usr/sbin/sendmail: , 17152 at mailer.cgi line 362., referer: http://www.fun.com/contact.htm

                        dieses 17152 scheint ein fehler im mailprogramm zu sein.
                        Habs gegoogelt.
                        MfG
                        rolf

  3. 你好 rolf,

    Guten morgen,
    ich hab da ein problem mit einem per script
    Eigentlich sollte es funktionieren aber das tut es nicht...
    Wie kann es sein dass im error log bei

    close (MAIL) || die "Cannot close mail\n";

    also mail schliessen die mail nicht geschlossen werden kann?

    close() gibt (wenn das Filehandle mit einer Pipe verknüpft ist) unter folgenden Vorraussetzungen false zurück:

    • Das Filehandle konnte nicht geflushed werden
    • Einer der System-Calls, die notwendig sind um eine Pipe zu schließen ist fehlgeschlagen
    • Das Programm, dass mit der Pipe gestartet wurde, gibt nicht 0 zurück. Das ist nicht wirklich ein Fehler. In diesem Fall ist $! == 0.

    Nähere Auskünfte gibt dir auf jedenfall $!, etwa so:

    close(MAIL) or die "Cannot close mail: $!";

    [Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] malformed header from script. Bad header=517 Syntax error.: mailer.cgi, referer: http://www.fun.com/contact.htm

    Das sieht aus wie ein Fehler, den das Mail-Programm von sich gibt, scheinbar in den stdout.

    [Wed Sep 17 08:10:52 2008] [error] [client 92.104.156.14] Cannot close mail, referer: http://www.fun.com/contact.htm

    Hier macht das Mail-Programm eine Fehler-Meldung, das scheint mir aber ein Folge-Fehler zu sein.

    Wenn du mich fragst: Das Mail-Programm erstellt eine Fehlermeldung und beendet sich nicht mit Status 0. Daraus folgend bricht das Perl-Script ab.

    再见,
     克里斯蒂安

    --
    Bauer sucht Frau! | Ich bin ja eigentlich kein Serien-Junkie…
    <Tim> Ich bin nicht hier, um zu helfen. Mir hilft ja auch keiner. Sogar mein Brötchen muss ich mir jetzt selber schmieren.
    http://wwwtech.de/