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.
<< Inhalt >>



©opyrights @ Nils Heuermann & Stefan Dyck 2000