TruckerTom 10 Geschrieben 7. Oktober 2008 Melden Geschrieben 7. Oktober 2008 Hallo Kollegen, ich habe folgendes Problem: Ich will ein in HTML geschriebenes Formul einfach nur per Email verschicken. Das ganze soll im lokalen Netz funktionieren, braucht also nicht irgendwie besonders geschützt zu sein. Dazu habe ich mir im Netz folgendes Script besorgt: #!/usr/bin/perl # # -------> Individuelle Parameter des Skriptes - bitte anpassen! # --> SMTP-Programm zum Versenden der Mail: $Sendmail_Prog = "/usr/lib/sendmail"; # --> Ziel-Mailadresse, an die gesendet werden soll: $mailto = 'empfaenger@mailadresse.lokal'; # -------> Modul für CGI-Scripts einbinden: use CGI; # -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden: $query = new CGI; @names = $query->param; # -------> interne Daten aus den erwarteten hidden-Feldern auslesen: $delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value $returnhtml = $query->param('return'); # ---> URL für Dankeseite $subject = $query->param('subject'); # ---> E-Mail-Subject # -------> alle Whitespace-Zeichen (Leerzeichen, Tabulator, Newline) in Leerzeichen wandeln # VERHINDERT sonst möglichen MISSBRAUCH des Skripts $subject =~ s/\s/ /g; # -------> Text der E-Mail aus den Formulardaten ermitteln: $mailtext = ""; foreach(@names) { $name = $_; @values = ""; @values = $query->param($name); if($name ne "return" && $name ne "subject" && $name ne "delimiter") { foreach $value (@values) { $mailtext = $mailtext.$name; $mailtext = $mailtext.$delimiter; $mailtext = $mailtext.$value."\n"; } } } # -------> E-Mail versenden: open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n"; print MAIL "To: $mailto\n"; print MAIL "Subject: $subject\n\n"; print MAIL "$mailtext\n"; close(MAIL); # -------> Dankeseite an Browser senden: print "Location: $returnhtml\n\n"; Wo muss ich denn dem Script sagen, welches der Mailserver im lokalen netz ist? Weil das muss er ja irgendwie wissen, oder nicht? P.S.: was funktioniert ist, dass er die Dankeseite an den Browser schickt, aber es wird keine Email versendet.
TruckerTom 10 Geschrieben 14. Oktober 2008 Autor Melden Geschrieben 14. Oktober 2008 hat da keiner eine Idee? Wie könnte ich es noch machen, dass ein HTML-Formular einfach nach Klick auf "Senden" per Email gesendet wird, unabhängig vom lokalen Mailprogramm?
Lian 2.659 Geschrieben 14. Oktober 2008 Melden Geschrieben 14. Oktober 2008 Was hast Du für einen Webserver? Mit Perl hat man das früher realisiert, als es nur CGI gab. Mittlerweile wird meistens ASP oder PHP genutzt... Zu Deiner Frage: Wo muss ich denn dem Script sagen, welches der Mailserver im lokalen netz ist? Es wird versucht auf ein lokales sendmail (Linux, *nix) zuzugreifen: $Sendmail_Prog = "/usr/lib/sendmail";
TruckerTom 10 Geschrieben 14. Oktober 2008 Autor Melden Geschrieben 14. Oktober 2008 Muss das Sendmail nicht auch einen Mailserver in der Config haben, dass es versenden kann?
Lian 2.659 Geschrieben 14. Oktober 2008 Melden Geschrieben 14. Oktober 2008 So ist es: Sendmail 8.12.11 cf/README - Sendmail Configuration Files Ist es ein Apache Server auf einem Linuxserver?
TruckerTom 10 Geschrieben 14. Oktober 2008 Autor Melden Geschrieben 14. Oktober 2008 den Server hat ein Kollege aufgesetzt, lieder weiss er auch nicht genau wie ich das konfigurieren muss. Ich werd emich mal durch einige HowTos durchlesen, vielleicht finde ich ja noch die Antwort. Laut seiner Aussage muss das o.a. Script den Empfangs-Email-Server mit übergeben. So wie ich das sehe muss nur am Ende noch irgendwo rein so im Stile on: print MAIL "SMTP: mailserver"; oder halt die entsprechende Variable dazu....
Lian 2.659 Geschrieben 14. Oktober 2008 Melden Geschrieben 14. Oktober 2008 Um SMTP zu nutzen mit Perl muss man das script umstricken: Net::SMTP - perldoc.perl.org Wie gesagt: Es wird schneller und einfacher sein mit PHP & SMTP zu arbeiten als PERL mit SendMail zu konfigurieren oder auf SMTP umzubauen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden