Hi,
#!/usr/bin/perl -w
use strict;
Du ahnst nicht, wie viele Fehler Dir das aufdecken wird.
Wie denn aufdecken?
das erfährst Du in
perldoc perlrun
perldoc strict
;-)
Was hab ich davon, wenn es auch mit der obigne Version funktioniert?
Sofern Du nicht den w-Switch und strict benutzt (oder _sehr_ genau weißt, was Du tust), ist es eher Zufall, daß es funktioniert. Irgendwann wird sich einer dieser kleinen, versteckten Fehlerchen bemerkbar machen - und zwar meist gravierend.
Also meinst Du perldoc.com? Ist das auch ein Modul, auf welches ich einfach zugreifen kann?
Nein, ich meine die Perl Documentation, die mit jeder (mir bekannten) Perl-Distribution geliefert wird und sich daher auch auf Deiner Festplatte befinden sollte. Dabei wird neben der eigentlichen Doku auch ein Programm namens "perldoc" installiert.
Also Net::SMTP hate ich irgendwann mal probiert, hat aber nicht geklappt, aber wie Du siehst mache ich noch viele blöde Fehler:-) Was wäre der Vorteil?
Der Vorteil ist, daß es auf jedem (ordentlich konfigurierten) System funktioniert, die sendmail-Variante jedoch nur, wenn dieses Programm installiert ist - _und_ das System ordentlich konfiguriert.
Nicht gut. param() liefert Dir bereits ein Array, das Du direkt verwenden kannst; es ist nicht nötig, es noch mal in den Speicher zu kopieren.
Also weglassen?
Ja. Sofern Du keine Gründe hast, ein Array statt der Methode param zu verwenden, gibt es, nun, keinen Grund dafür.
OK, Danke! Wie müßte ich dann das Datum mit deiner variante einfügen?
Einfach localtime im Listenkontext verwenden und mit locale für die richtige Sprache sorgen. Siehe
perldoc -f localtime
perldoc perllocale
foreach(@names) {
next if ($_ eq 'mailto' || $name eq 'return' || $name eq 'subject' || $name eq 'delimiter');
foreach my $value ($query->param($_)) {
$mailtext .= $_.$delimiter.$value."\n";
}
einfach statt dessen einfügen?
Jupp.
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
open(...) or die "Mailprogramm konnte nicht gestartet werden: $!";
Und das reicht???
Die drei Punkte sind natürlich nur ein Platzhalter :-)
Kein From?
Warum Form? Wegen früherer Postings oder warum?
Weil wegen Absender. Besser isses. Wenn Du keinen setzt, wird gewöhnlich ein Dummy reingeschrieben.
close(MAIL) or die "Mailprogramm konnte nicht geschlossen werden: $!";
auch ersetzten?
Was ich Dir sagen wollte: Du solltest bei _allen_ kritischen Operationen (oft ist auch close eine solche) unbedingt den Fehlerfall abfangen.
Cheatah