Suche modernes Kontaktformular mit Spamschutz

  • Hallo an alle,


    ich bin auf der Suche nach einem modernen Kontaktformular mit Spamschutz. Modern soll heißen an die heutigen Standards angepasst, zB PHP7, Sicherheit etc.

    Ich hab hier im Forum ein Tutorial zum PHP-Mailer gefunden, das mir auch schon beim Googlen unterkam. Dort stört mich aber, dass ich meine SMTP-Zugangsdaten angeben soll...die liegen ja dann einfach mal so auf dem Server rum und können ausspioniert werden. Genauso beim Swift Mailer.

    Kontaktformular.com ist leider nur für Privatanwender kostenlos und ich soll eine Seite für Vereine machen, wofür es explizit als nicht kostenlos ausgewiesen ist.

    EasyPHP Contact Form würde mir nun am meisten zusagen mit der Honeypot-Funktion. Captcha will ich keines, die sind nur lästig und liegen zum Teil ja auch wieder auf externen Servern.


    Auf einer Website, die ich vor 15 Jahren gestaltet habe, hab ich folgendes Formular verwendet und (natürlich) Spam ohne Ende bekommen. (Namen rausgelöscht, die Seite existiert nicht mehr).


  • Dort stört mich aber, dass ich meine SMTP-Zugangsdaten angeben soll...die liegen ja dann einfach mal so auf dem Server rum und können ausspioniert werden.

    Und wie sollte das gehen?

    mit der Honeypot-Funktion

    Das kann man leicht selber programmieren.

    ich soll eine Seite für Vereine machen

    Machen wir hier deinen Job?

    Auf einer Website, die ich vor 15 Jahren gestaltet habe

    Und genau deswegen hättest du den veralteten Kram gar nicht posten müssen.


    Bei soviel Text und veraltetem Code fehlt mir nur eines: deine Frage.

  • Und wie sollte das gehen?

    Das weiß ich nicht, ich bin kein Hacker. ;) Aber die PHP-Dateien lassen sich bestimmt auslesen. Deswegen ist mir das suspekt, die SMTP-Daten dort offen einzugeben.


    Machen wir hier deinen Job?

    Ne, wieso? Sagt ja niemand. Hab damit nur gesagt, dass die Seite, die ich mache, für einen Verein ist, und ich daher Kontaktformular.com nicht verwenden darf.



    Und genau deswegen hättest du den veralteten Kram gar nicht posten müssen.

    Es hätte ja sein können, dass der heute auch noch was taugt - mit ein paar Ergänzungen.



    Meine Frage letzten Endes wäre eig, welche Kontaktformulare man heutzutage so verwendet bzw. ob dieses EasyPHP was taugt. Ich denke mal, so falsch wird das nicht sein, aber ihr habt ja mehr Erfahrung.

  • Es hätte ja sein können, dass der heute auch noch was taugt

    Nein, tut es nicht. Fachgerechtes Entsorgen ist das einzige, was man damit machen sollte.

    Meine Frage letzten Endes wäre eig, welche Kontaktformulare man heutzutage so verwendet

    Selber machen lautet die Devise. Das ist alles kein Hexenwerk, Tutorials zu dem Thema gibt es genug.

  • So, da bin ich wieder. Hab mir nun auch ein paar Youtube-Tutorials angesehen - natürlich keine alten, sondern aus den letzten 1-2 Jahren. Die sind auch total einfach und verständlich, das könnt ich glatt selber.

    Was ich aber nicht verstehe - eben weil ich's einfach nicht besser weiß - wenn die so einfach sind, gibt's da Nachteile in Sachen Sicherheit oder so? Es gibt ja nicht umsonst Formulare, wo jede Menge komplexer Code dahintersteckt.

    Und vielleicht kann mir auch jmd sagen, was an meinem alten Formular falsch ist. Einfach nur, weil das nicht PHP7 ist oder gibt's da noch andere Mängel? Mal abgesehen davon, dass da kein Spamschutz drin war.


    Dann hab ich noch eine allgemeine Formular-Frage, die eher HTML betrifft. Man sollte ja zwecks Barrierefreiheit immer einen Label-Tag angeben. Ich will aber kein Label dastehen haben, finde es nur mit Platzhalter einfach auch schöner. Wenn ich das über CSS mit display:none formatiere, ist es ja im HTML vorhanden. Reicht das für Screenreader öÄ aus oder muss das Label tatsächlich sichtbar vorhanden sein? Man sieht es ja wirklich oft nur mit Platzhaltern.


    Danke.

  • Es gibt ja nicht umsonst Formulare, wo jede Menge komplexer Code dahintersteckt.

    Das hängt ja zum großen Teil vom Formular ab.

    oder gibt's da noch andere Mängel?

    Wie schon geschrieben, du benutzt da die mail-Funktion von PHP anstatt auf eine Mailerklasse w.z.B. den phpMailer zu setzen.

    Reicht das für Screenreader

    Die Antwort kannst du dir doch selber beantworten: Screenreader sagt doch alles.

  • An der mail()-Funktion ist per se nichts falsch. Nur sollte man, um auch garantieren zu können, dass ein Mail ankommt, dieses korrekt versenden, d.h. mit den korrekten Headern, etc. Wenn du fähig bist Dich durch die ganzen RFC's durchzuwühlen kannst du gerne mit mail() verschicken. Ansonsten würd ich einfach zu einem fertigen Mailer greifen, da hat einer schon die Arbeit für Dich getan und du bist auf der sicheren Seite. Wenn man ein Mail einfach so mit mail() verschickt, wie das viele Tutorials und so tun, ist es durchaus möglich, dass es nicht ankommt. Oder im SPAM-Ordner verschwindet.

  • Ihr könnt mich gern steinigen, aber ich habe mit der mail-Funktion nach diversen Tutorials mir ein Kontaktformular zusammengebaut.

    Auf meinem Testserver von all-inkl hat das auch alles bestens funktioniert. Die Nachrichten kamen bei diversen Mailadressen an.

    Nun habe ich die Website auf den richtigen Server geladen, von hosttech. Dort kommt allerdings keine einzige Nachricht an, bei sämtlichen unterschiedlichen getesteten Mailadressen - auch nicht bei der servereigenen.

    Ob das nur an den RFCs liegt wage ich zu bezweifeln, denn so falsch kann das Formular ja nicht sein, sonst würde es ja auf all-inkl auch Probleme machen.


    Ich hänge es gern mal an.


  • Dort kommt allerdings keine einzige Nachricht an

    Tja, da du anscheinend den phpMailer nicht einsetzen willst ...

    Damit würde das nämlich garantiert funktionieren.


    Und noch ein Hinweis: drehe mal das Error-Reporting hoch, dann wird dir PHP garantiert Warnings um die Ohren hauen.

  • Ich hab error Ausgabe auf on geschaltet und nichts bekommen. Weder beim Aufruf noch beim Senden.


    Warum läuft es dann auf dem anderen Server, wo genauso PHP 7.3 läuft?

  • Ich hab error Ausgabe auf on geschaltet

    Dann machst du was falsch. Display-Errors auch aktiviert? Ich sehe mindestens 2 Stellen, bei denen eine Notice-Warnung kommen muss.



    Warum läuft es dann auf dem anderen Server, wo genauso PHP 7.3 läuft?

    Vielleicht ist die mail-Funktion deaktiviert, aber was genaues kann man nicht sagen.

  • Antwort vom Hoster, ich muss wohl zwingend SMTP und den PHPMailer nutzen.

    Ich finde den ja schon irgendwie kompliziert. Mit dem Grundprinzip komm ich klar, aber ich fürchte, ich brauche Hilfe beim Umbau meines Formulars - dass dann auch die if und else Abschnitte richtig ausgegeben werden.


    Was ich auch nicht will ist quasi mor selber ein Mail zu schicken. Ich möchte schon, dass bei sent from die Mailadresse und ggf der Name des im Formular angegebenen Absenders stehen.


    HTML kann und will ich auch nicht verwenden, denn der Besucher wird kaum HTML-Code beim Ausfüllen benutzen und so würden dann sämtliche Zeilenumbrüche ignoriert werden.


    Ich werde in den nächsten Tagen mal versuchen das umzucoden und hoffe, ihr könnt mir dann weiterhelfen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!