Hallo Fachmänner und Frauen, ich bin am Ende meiner Kräfte, seit Tagen probier ich rum geht aber nicht, somit wende ich mich an euch.
Problem:
Email vom cgi Formular kommt nicht mehr an, bis vor kurzem ging alles.
Das komische ist der Benutzer merkt gar nichts das es nicht geht.
Die Ok Seite kommt das, das Formular abgeschickt worden ist, aber es kommt nicht bei mir an.......
Die Leute vom Service meinen: sie hätten nichts geändert keinen neuen Pfad oder so ....sind nur nach Holland umgezogen, sonst währ alles beim alten....
Meine Frage:
Was könnte das blos sein? Hab ich aus versehen was gelöscht in dem Cgi-bin Ordner?
War da vielleicht noch ein Unterordner drin?
Wie gesagt 1 Jahr ging das Formular einwandfrei......
also ich bin bei evanzo.
und hier hab ich mal das formular.cgi script mal kopiert...
--------------------------------------------
!/usr/bin/perl
#
# Copyright (c) 2002, Markus Roghani, <mar@perl-seite.de>
# All rights reserved.
#
# URL: http://www.perl-seite.de/
#
# formular.cgi darf von jedermann kostenlos benutzt und geändert werden, solange
# dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben. Mit
# dem Einsatz dieses Skripts akzeptieren Sie, daß Markus Roghani von jeglicher
# Haftung und Gewährleistung hinsichtlich des Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt.
# Mit anderen Worten: Bitte fragen Sie mich, bevor Sie versuchen, mit meinem
# Skript Geld zu verdienen.
#
# Um dieses Skript über das Internet oder irgendein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher meine Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
#
#
# $Id: formular.cgi,v 1.1 2002/11/03 14:44:10 markus Exp $
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;
use Fcntl;
my $cgi = new CGI;
#===============================================
# Einlesen der Formular Config Datei
#===============================================
my $formular_conf = $cgi->param("config");
my %globPreference;
sysopen (CONF_FILE, "$formular_conf", O_RDONLY) or die "Kann $formular_conf nicht oeffnen: $!\n";
while (<CONF_FILE>)
{
chomp; # keine Newline
s/#.*//; # keine Kommentare
s/^\s+//; # keine fuehrende Whitespaces
s/\s+$//; # keine angehaengten Whitespaces
next unless length; # noch was da ?
if (/(\S+) ?= ?"(.*?)"/g)
{
my $left_val = $1;
my $right_val = $2;
}
if ($1 && length ($1) > 0)
{
$globPreference{$1} = $2;
}
}
close(CONF_FILE);
my $mail_from = get_var("MAIL_FROM");
my $mail_to = get_var("MAIL_TO");
my $mail_cc = get_var("MAIL_CC");
my $mail_bcc = get_var("MAIL_BCC");
my $subject = get_var("MAIL_SUBJECT");
my $felder = get_var("FELDER");
my $pflichtfelder = get_var("PFLICHTFELDER");
my $sendmail = get_var("MAIL_PROGRAMM");
my $redirect = get_var("REDIRECT");
my $error_page = get_var("ERROR_PAGE");
$felder =~ s/ //g; # whitespaces entfernen
my @felder = split(/,/, $felder);
$pflichtfelder =~ s/ //g; # whitespaces entfernen
my @pflichtfelder = split(/,/, $pflichtfelder);
#===========================================
# Einlesen der Formulardaten
#===========================================
my %values;
foreach(@felder)
{
$values{$_} = $cgi->param($_);
}
#=================================================
# Pruefen ob alle Pflichtfelder ausgefuellt wurden
#=================================================
foreach (@pflichtfelder)
{
error("$_") if (! $values{$_});
}
#=================================================
# Formular mit Sendmail versenden
#=================================================
die("Fehler: Es wurde kein MAIL_TO in $formular_conf definiert") if (!$mail_to);
die("Fehler: Es wurde kein MAIL_PROGRAMM in $formular_conf definiert") if (!$sendmail);
my $rcpts = "To: $mail_to";
$rcpts .= "\nCc: $mail_cc" if ($mail_cc);
$rcpts .= "\nBcc: $mail_bcc" if ($mail_bcc);
my $msg;
foreach(@felder)
{
$msg .= "[$_]: $values{$_}\n";
}
if ($mail_from)
{
$values{email} = $mail_from;
}
if ($subject)
{
$values{betreff} = $subject;
}
my $sendmailcmd = "|$sendmail -t -f\"$values{email}\"";
open(SENDMAIL, $sendmailcmd) or die "Kann Sendmail nicht aufrufen: $!\n";
print SENDMAIL <<END;
From: $values{email}
$rcpts
X-Mailer: FormMailer perl-seite.de
Subject: $values{betreff}
Formular Daten:
$msg
---------------------------------------------------
Formular wurde von der Seite
$ENV{'HTTP_REFERER'}
aufgerufen mit der IP $ENV{'REMOTE_ADDR'}
---------------------------------------------------
END
close(SENDMAIL);
#========================================
# REDIRECT Seite aufrufen
#========================================
print "Location: $redirect\n\n";
# Ende
#========================================
# Subroutinen
#========================================
sub get_var
{
my $varName = shift;
return ($globPreference{$varName});
}
sub error
{
my $missing = shift;
if ($error_page)
{
print "Location: $error_page\n\n";
}
else
{
print "Content-type: text/html\n\n";
print <<EOT;
<html>
<head><title>Bitte Pflichtfelder ausfüllen</title></head>
<body>
<b>Bitte füllen Sie das Pflichtfeld $missing aus.</b>
Back Button des Browsers drücken, um zum Formular zurück zu gelangen.
</body>
</html>
EOT
}
exit(1);
}
-----------------------------------------------
Hier die TXT. Datei
#====================================================
# Konfigurations Datei fuer formular.cgi
#====================================================
# Wenn dieses Feld leer gelassen wird, wird der Wert aus dem Feld
# 'email' benutzt
MAIL_FROM=""
# Die Empfänger Adresse, an die das Formular gesendet werden soll
MAIL_TO="meine@adresse.de" (ist nur ein beispiel)
MAIL_CC=""
MAIL_BCC=""
# Betreff der in der Email stehen soll. Wenn das Feld leer ist, wird das Feld
# 'betreff' benutzt.
MAIL_SUBJECT="Formular"
# hier die Feldernamen, die es im Formular gibt eintragen
FELDER="vorname, nachname, strasse, nr, plz, ort, land, telefon, fax, email, nachricht"
# Pflichtfelder die ausgefüllt werden müssen
PFLICHTFELDER="vorname, nachname, strasse, nr, plz, ort, land, email"
# Fehlerseite, wenn nicht alle Pflichtferlder ausgefüllt wurden
# Wenn Fehlerseite nicht definiert, wird eine Fehlerseite von
# formular.cgi erzeugt
ERROR_PAGE=""
# Seite die nach dem Versenden aufgerufen wird
REDIRECT="/formular_ok.html";
# Pfad zu Sendmail
MAIL_PROGRAMM="/usr/sbin/sendmail";
-----------------------------
Es würde mich sehr sehr freuen wenn sich jemand die Zeit nehmen würde und mir helfen könnte!
Herzlichen Dank schon im vorraus!
Mit freundlichen Grüßen
Jarik
Datum: 23.02.2008-00:10
