Klaus Mock: Probleme mit Formmailer unter WIN 2000

Beitrag lesen

Hallo nochmal,

Hier einige Ergänzungen zum vorher gesagten:
(nach Vorlage des Codes, Link wird ev. von Marcus nachgereicht)

Ich schreibs mal so, wie ich den Code durchgegangen bin.

Such mal im Script nach der Stelle, wo das Mail zum Versenden zusammengebaut wird.
Dort findest Du sicherlich eine Ausgabe die irgendwie
From: sender@nowhere.org
bzw
From: $sender
lautet.

Ergebnis: Es gibt da 'sub send_mail' Zeile 360-462.
In Zeile 381 kommt besagte Ausgabe vor:
$smtp->datasend("From: $Config{'email'} $Config{'realname'}\n");
und auch in Zeile 371
$smtp->mail($Config{'email'});

Das sagt mir, daß alles in einem Hash namens %Config steht.

Hier besteht für Dich Handlungsbedarf.
Wenn's der erste Fall ist, was ich nicht glaube, dann änder diese Mailadresse in die gewünschte (Deine??).

Das war's also nicht, hehehe.

Im zweiten Fall suche jene Stelle im Script, wo diese Variable belegt wird. Dann dort ändern.

Also flugs nach dem ersten auftreten von 'Config' gesucht, mit einem vernünftigen Editor ist das ja einfach.
In Zeile 135ff werde ich fündig (respektive der Editor)

%Config = ('recipient','',          'subject','',
               'email','',              'realname','',
               'redirect','',           'bgcolor','',
               'background','',         'link_color','',
               'vlink_color','',        'text_color','',
               'alink_color','',        'title','',
               'sort','',               'print_config','',
               'required','',           'env_report','',
               'return_link_title','',  'return_link_url','',
               'print_blank_fields','', 'missing_fields_redirect','');

Aha, hier werden also die Defaultwerte eingetragen! (das ganze ist in der Funktion parse_form)
Von vorhin weiß ich, daß 'email' bzw. realname relevant ist. Schaun mer mal.
Naja, also '' als Absender, dann verstehe ich, warum der Mailserver nicht will.

Aber sehen wir weiter, vielleicht werden diese Werte ja überschrieben.
beim Runterscrollen sehe zwar, daß das noch ein Script ist, daß von CGI.pm als Webworkers-best-friend nichts hält, aber was sollst, interessant wird es wieder ab Zeile 189

if (defined($Config{$name})) {
            $Config{$name} = $value;
        }

Hier werden die Defaultwerte bei bedarf anscheinend mit eventuell vorhandenen Werten des aufrufenden HTML-Formular belegt.

Was sagt uns das alles:
1.) Ab Zeile 135 sollten vernünftige Werte eingetragen werden, damit es sicherlich klappt.

2.) Diese Werte können per Formular auch überschrieben werden, beispielsweise mit:
<input type="hidden" name="email" value="foo@bar.com">

Grüße
  Klaus