kostenloses kontaktformular mit perl-cgi Script
piet
- html
- perl
Hallo,
ich suche ein kostenloses "Kontaktformular" mit perl script (kein PHP) für meine Webseite.
Danke
Eines von Tausenden:
http://www.devedge.de/perl/einfaches-kontaktformular-mit-perl
Du musst Dir aber im Klaren darüber sein, dass dem Skript viel fehlt.
Dieses z.B. werden sehr rasch fürchterlich wichtige und seriöse Geschäftsleute entdecken und Du wirst staunen was die Dir alles empfehlen und Du wirst am Tag so 200 mal in Versuchung gebracht allerhand afrikanischen Prinzen und (stellvertretenden) Bankdirektoren zu antworten, welche Dich und nur ausgewählt haben um Dir gegen geringe Beteiligung und Übernahme aller Kosten für Bestechungen und Gebühren ein Millionenvermögen zuzuschanzen.
Zudem solltest Du bei dem Skript sehr genau darauf achten, dass der Absender nichts außer dem Mailbody bestimmen darf (Empfänger, Absender, Subject) - sonst kann man da einschleusen was man will, z.B. CC-Adressen und BCC-Adressen. Milliarden andere, ebenso sorgfältig ausgewählte, müssen ja auch beglückt werden.
Eines von Tausenden:
http://www.devedge.de/perl/einfaches-kontaktformular-mit-perl
Das ist doch nicht Dein Ernst oder?
Du musst Dir aber im Klaren darüber sein, dass dem Skript viel fehlt.
Da fehlen schonmal die Header. Aber so wie der Perlcode aussieht, kann die sogar der Absender selbst hinzufügen per HTTP Request. Einschließlich CC und BCC 😉
MfG
Da fehlen schonmal die Header.
Nein.
Aber so wie der Perlcode aussieht, kann die sogar der Absender selbst hinzufügen per HTTP Request. Einschließlich CC und BCC
So wie gezeigt eben nicht. From, To werden vom Skript als fixe Strings vorgegeben
$empfaenger = 'info@domain.de';
$absender = 'info@domain.de';
und zusammen mit dem Subject im header verbaut:
print MAIL <<"EOF";
To: $empfaenger
From: $absender
Subject: Kontaktformular
$email_body
EOF
Aber so wie der Perlcode aussieht, kann die sogar der Absender selbst hinzufügen per HTTP Request. Einschließlich CC und BCC
So wie gezeigt eben nicht. From, To werden vom Skript als fixe Strings vorgegeben
Oh Sorry, Du hast Recht, hab ich übersehen, entschuldige. Aber als HTML-Mail würde ich das trotzdem nicht durchgehen lassen.
Wenn HTML dann richtig, d.h., nach dem MIME Standard, als multipart/mixed oder multipart/alternative und selbstverständlich mit einem zweckmäßigen Transfer-Encoding was entsprechend zu deklarieren wäre.
Und nochwas: CGI::header()
erzeugt header für HTTP, nicht für Mail. MfG
Aber als HTML-Mail würde ich das trotzdem nicht durchgehen lassen.
Ein Mail im HTML-Format war nicht gefordert.
Und nochwas: CGI::header() erzeugt header für HTTP, nicht für Mail.
Das was bisher nicht Thema. Zudem sehe ich nicht was das mit Deiner Aussage
Da fehlen schonmal die Header. Aber so wie der Perlcode aussieht, kann die sogar der Absender selbst hinzufügen per HTTP Request. Einschließlich CC und BCC
zu tun haben soll. Diese Aussage zeigt eindeutig auf Mail-Header. Und auch hier kann der Absender nichts einfügen, was Dritten schadet oder diese belästigt.
Das einzige, was mir am Skript aufgefallen ist, ist dass dem Mail-Header noch eine Zeile mit dem Content-Type und der Kodierung (hier UTF-8, muss oft angepasst werden) hinzugefügt werden sollte.
Hier also Content-Type: text/plain; charset="utf-8"
, so dass der betreffende Bereich des originalen Skriptes wie folgt aussieht:
print MAIL <<"EOF";
To: $empfaenger
From: $absender
Subject: Kontaktformular
Content-Type: text/plain; charset="utf-8"
$email_body
EOF
Mit der Sicherheit hat das nichts zu tun, der Empfänger kann das Resultat nur besser lesen wenn nicht-ASCII-Zeichen (z.B. Umlaute) drin stehen sollen.
Ja, schön. Content-Type; Charset ist das Eine. Für den Body, egal ob text/plain oder text/html wird i.d.R. ein Content-Transfer-Encoding: quoted-printable empfohlen wenn Charset=UTF-8 ist.
Die Minimalversion sieht dann so aus:
# Mail-Template
my $TT = <<'TOK----------------------------------------------------------------------------EN';
From: %from%
To: %to%
Subject: %subject%
Date: %date%
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; Charset=%charset%
%mesg%
TOK----------------------------------------------------------------------------EN
und falls der Subject-Header nicht mehr ASCII ist, wäre hier auch noch was zu tun. MfG
PS: Alternative zu quoted-printable wäre base64 aber dann ist die Mail nur noch maschinell lesbar.
Content-Transfer-Encoding: quoted-printable
und falls der Subject-Header nicht mehr ASCII ist, wäre hier auch noch was zu tun.
Nun, ich brauche das nicht. Mein Thunderbird tut es auch ohne.
Mein Webmailer auch. Ob das andere Clients auch können will ich gerade nicht testen. Immerhin müsste man dann die Nachricht dann auch passend encoden - oder irre ich mich?
hi Jörk,
Mein Webmailer auch. Ob das andere Clients auch können will ich gerade nicht testen. Immerhin müsste man dann die Nachricht dann auch passend encoden - oder irre ich mich?
Nein, Du irrst Dich nicht 😉 Die Nachricht wäre zu encoden. Quoted Printable wird nicht auf Zeichen sondern auf die Oktetten (Bytes) angewandt, das wäre noch zu beachten. Normalerweise liefert CGI.pm auch die Oktetten es sei denn es wurde so eingestellt, daß Zeichen geliefert werden.
Also genau hingucken, wenn Du die entsprechenden Funkionen der zahllos verfügbaren Libraries anwendest.
Untenstehender Funktion ist es egal ob bytes oder Zeichen kommen:
sub quotePrint{
my $s = shift;
use bytes; # Bytesemantics einschalten!
$s =~ s/=/=3D/g;
my @qp = map{ $_ > 127 ? sprintf("=%X", $_) : pack("C", $_) } unpack "C*", $s;
return join '', @qp;
}
MfG
Hi,
das Formular kannst Du selber erstellen. Zeige es hier und dann sehen wir weiter. MfG