Thread formmail.pl (34 answers)
Opened by bus at 2003-08-17 13:07

Drain
 2003-08-22 11:42
#897 #897
User since
2003-08-21
26 Artikel
BenutzerIn
[default_avatar]
Nur mal zum sicherstellen, ob ich auf dem richtigen Weg bin.
Ich möchte Formulardaten mittels CGI-Schnittstelle und Perl verarbeiten und als Email zugeschickt bekommen. Dafür habe ich auf meinem Windows-System (nicht schimpfen deswegen) IIS zum Testen eingerichtet.
Folgendes Script soll die Daten zurückmailen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);


# ------->; SMTP-Programm zum Versenden der Mail:
my &#36Sendmail_Prog = "http:\\localhost\scripts\sendmail.exe";

# ------->; Modul für CGI-Scripts einbinden:
use CGI;

# ------->; Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:
my &#36query = new CGI;
my @names = &#36query->param;

# ------->; interne Daten aus den erwarteten hidden-Feldern auslesen:
my &#36delimiter = &#36query->param('delimiter');  # --->; Begrenzerzeichen zwischen name und value
my &#36mailto = &#36query->param('mailto');        # --->; Empfängeradresse
my &#36returnhtml = &#36query->param('return');    # --->; URL für Dankeseite
my &#36subject = &#36query->param('subject');      # --->; E-Mail-Subject


# ------->; Text der E-Mail aus den Formulardaten ermitteln:
my &#36mailtext = "";
foreach(@names) {
  my &#36name = &#36_;
  my &#36value = "";
  my @values = "";
  my @values = &#36query->param(&#36name);
  if(&#36name ne "mailto" && &#36name ne "return" && &#36name ne "subject" && &#36name ne "delimiter") {
    foreach &#36value (@values) {
      &#36mailtext = &#36mailtext.&#36name;
      &#36mailtext = &#36mailtext.&#36delimiter;
      &#36mailtext = &#36mailtext.&#36value."\n";
    }
  }
}

# ------->; E-Mail versenden:
open(MAIL,"|&#36Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: &#36mailto\n";
print MAIL "Subject: &#36subject\n\n";
print MAIL "&#36mailtext\n";
close(MAIL);

# ------->; Dankeseite an Browser senden:
print "Location: &#36returnhtml\n\n";


Als Mailprogramm habe ich mir Indigomail im C:\Inetpub\Scripts-Verzeichnis installiert.

Nach Abschicken der Formulardaten passiert aber bis auf das laden der Dankseite nicht viel. Bin ziemlich ratlos momentan. Jmd eine Idee, was noch zu ändern ist?
Was muß ich für einen Mail Server Host Name im Sendmail-Programm einstellen?

View full thread formmail.pl