#!/usr/bin/perl -T ## ## Kontaktformular ## my $toaddress = 'leosmail@mac.com'; my $domain = 'leoshome.de'; my $sendmail = '/usr/sbin/sendmail'; use strict; my %data; sub read_form { my ($buffer, $pair, $name, $value); my @pairs; if ($ENV{'REQUEST_METHOD'} eq "GET") { $buffer = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if (defined $data{$name}) { $data{$name} = $data{$name}.",".$value; } else { $data{$name} = $value; } } } read_form (); if (!$data{'name'}) { $data{'name'} = 'Anonymous'; } if (!$data{'email'}) { $data{'email'} = "nobody\@$domain"; } if (!$data{'area'}) { $data{'area'} = '??'; } exit () if (!$data{'message'}); $ENV{'PATH'} = ""; open (PIPE, "| $sendmail -t"); print PIPE "From: $data{'name'} <$data{'email'}>\n"; print PIPE "To: Webmaster <$toaddress>\n"; print PIPE "Subject: [$data{'area'}] Contact\n\n"; print PIPE "IP: $ENV{'REMOTE_ADDR'}\n"; print PIPE "X-FF: $ENV{'HTTP_FORWARDED_FOR'}\n"; print PIPE "UA: $ENV{'HTTP_USER_AGENT'}\n"; print PIPE "-----\n"; print PIPE "Name: $data{'name'}\n"; print PIPE "Ort: $data{'ort'}\n"; print PIPE "E-Mail: $data{'email'}\n\n"; print PIPE "Nachricht:\n\n$data{'message'}\n"; close (PIPE); print "Location: $data{'redirect'}\n\n";