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

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...