#!/usr/bin/perl use strict; use warnings; use CGI; my $q = CGI->new; my $firmen_mail = 'info@example.org'; # eigene Mailadresse my $name = $q->param('name') || ''; my $email = $q->param('mail') || ''; my $anfrage = $q->param('anfrage') || ''; my $mail_sent = 0; # Flag, ob Mail gesendet wurde # ab hier Parameter auf Gültigkeit prüfen my $fehlermeldung = ''; my $parameter_fehler = 0; # # ungetester Regex! # besser Mailadressen mit Modul Email::Valid testen! if ( $email !~ /[a-zA-Z0-9][a-zA-Z0-9_.-]+\@[a-zA-Z0-9_.-]+(\.[a-zA-Z]+)/ ) { $parameter_fehler = 1; $fehlermeldung = 'E-Mail falsch eingegeben'; } # # sendmail und Parameter my $sendmail = "> mailout.txt"; # Ausgabe an Datei nur für lokales Testen!!!! #my $sendmail = "| /usr/lib/sendmail -t -oi"; if ( !$parameter_fehler && $name && $email && $anfrage ) { # Formular wurde abgesendet if ( open( my $sm, $sendmail ) ) { # sensmail öffnen $email =~ s/[\r\n]//g; print $sm < To: Informationszentrale <$firmen_mail> Subject: Ihre Anfrage $anfrage MAIL close($sm) && $mail_sent++; # sendmail schließen und Flag für gesendet setzen $q->delete_all(); # alle CGI-Parameter löschen } } print $q->header; print $q->start_html( -title => 'Anfrage' ); if ( not $mail_sent ) { print $q->p( "Fehleingabe: ", $q->b( $fehlermeldung ) ) if length $fehlermeldung; print $q->start_form, $q->p( "Name : ", $q->textfield( -name => 'name' ) ), $q->p( "E-Mail : ", $q->textfield( -name => 'mail' ) ), $q->p( "Anfrage: ", $q->textarea( -name => 'anfrage' ) ), $q->submit, $q->end_form; } else { print $q->p( [ "Danke für Ihre Anfrage.", "Wir werden Sie demnächst kontaktieren." ] ); } print $q->end_html;