Jump to content

html-formular mailen mit perl


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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";

Geschrieben

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

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...