Verschicken der Formulardaten als E-Mail
$Mailprogramm = "/usr/sbin/sendmail";
$MailSubject = "Abstimmung: Wer wird deutscher Fußballmeister?";
$Empfaenger = "umfrage\@nils-heuermann.de";
$SenderName = $Formular[3];
$SenderMail = $Formular[5];
Der erste Skalar ($Mailprogramm) gibt den Pfad an, wo
sich das E-Mail-Programm auf dem Server befindet.
Mit dem zweiten Skalar ($MailSubject) wird die
Betreffzeile der E-Mail festgelegt.
In der nächsten Zeile wird der $Empfaenger für
die Mail definiert (ein @-Zeichen muss mit \@ angegeben werden, da das @ für die Definition von Arrays zuständig ist).
Nun wird der $SenderName und die
$SenderMail-Adresse, welche am
Anfang an 3. bzw. 5. Stelle des Arrays @Formular
gespeichert wurden, vereinbart.
open(MAIL,"|$Mailprogramm -t") || die;
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail($SenderName)\n";
print MAIL "Subject: $MailSubject\n";
Jetzt wird das Mail-Programm geöffnet:
open(MAIL,"|$Mailprogramm -t") || die
|| die bedeutet, wie beim Lesen/Speichern aus/in Dateien, dass, wenn das
Mailprogramm nicht gefunden wird, das Script abgebrochen wird.
Im Folgenden wird der Empfänger mit print MAIL "To:
$Empfaenger\n" in die Mail geschrieben, wie bei einer Datei.
Sendername und E-Mail-Adresse werden in die Mail geschrieben: print
MAIL "From: $SenderMail($SenderName)\n" Damit beim Empfänger
der Name des Absenders im Von-Feld erscheint, wird der
$SenderName in Klammern hinter der $SenderMail-Adresse
eingefügt.
Schließlich wird der Betreff mit print MAIL "Subject:
$MailSubject\n" der Mail hinzugefügt.
Damit das Mail-Programm weiß, was der Betreff etc. ist, werden
den Angaben die (üblichen) englischen Feldnamen To,
From und Subject vorangestellt.
$max = $#Formular;
for($i=0;$i<=$max;$i=$i+2)
{
print MAIL "\n$Formular[$i]: $Formular[$i+1]";
}
print MAIL "\n\nErgebnisse:";
for($i=0;$i<=$#pro;$i++)
{
print MAIL "\n$names[$i] $pro[$i]%";
}
close(MAIL);
Die Anzahl der Elemente des Arrays @Formular wird dem Skalar $max zugewiesen: $max = $#Formular
Anschließend wird mit for($i=0;$i<=$max;$i=$i+2) eine Schleife
eingeleitet, die sooft durchlaufen wird, bis $i $max
überschreitet, wobei $i immer 2 hinzuaddiert wird.
Da in den Elementen mit gerader die HTML-Feld-Namen und in den
Elementen mit ungerader Zahl des Arrays @Formular die Feldwerte
gespeichert sind (siehe Einlesen der "vorhandenen" Daten),
werden diese Angaben mit print MAIL "\n$Formular[$i]: $Formular[$i+1]" in die Mail geschrieben.
Es werden nun zwei Zeilenumbrüche (\n) und danach "Ergebnisse:" in die E-Mail eingefügt:
print MAIL "\n\nErgebnisse:"
In der Schleife for($i=0;$i<=$#pro;$i++) werden die Teamnamen
($names[$i]) und die dazugehörigen Prozentwerte ($pro[$i])
in die Mail geschrieben. Dies wird für alle Prozentwerte ($#pro)
durchgeführt.
Zum Schluss wird mit close(MAIL) das Mail-Programm geschlossen.
©opyrights @ Nils Heuermann & Stefan Dyck 2000