HTML Formularbutton, der E-Mail versendet?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Für einen Versand benötigst du einen SMTP-Client, der sich mit einen Mailserver verbinden kann, um die Nachricht zu verschicken.

Im einfachsten Fall könntest du einfach darauf vertrauen, dass deine Nutzer einen Mailclient auf dem Rechner installiert haben, der den Versand übernehmen kann. Dann würde es reichen, die Versandadresse im action-Attribut des Formulars anzugeben.

<form action="mailto:some-receiver@xyz.de">
  <input name="subject">
  <textarea name="body"></textarea>
  <button>Send</button>
</form>

Die Parameter subject und body würden die E-Mail entsprechend mit Betreff und Textkörper befüllen.

Um die Werte etwas vorzufiltern, kann man verschiedene Attribute auf den Formularfeldern einsetzen (patternrequiredmaxlength). Das diese Validation leicht umgehbar ist, sollte allerdings klar sein.

Mehr Kontrolle über den Versand (z.B. durch bessere Filtermöglichkeiten) hättest du, wenn du die Daten in einer serverseitigen Anwendung verarbeiten und erst dort verschicken würdest. Es müsste dabei sichergestellt sein, dass es einen Mailserver gibt und die von dir vorgegebene Absenderadresse bei diesem registriert ist. Wenn du bei einem Webhoster einen Webspace mietest, ist so etwas oft schon vordefiniert. Mehr Informationen findest du dann in der Regel in deinem Account und dem FAQ/Wiki.

Mit welcher Programmiersprache die Webanwendung entwickelt werden kann, ist abhängig von der Serverumgebung, auf der deine Webseite läuft. Typische Kandidaten wären z.B. PHP, Ruby oder JavaScript (Node.js). Für sie alle gibt es Bibliotheken, die beim Mailversand unterstützen (PHPMailer, mail, nodemailer, etc.).

Für schnelle Formularversand Lösungen eignen sich Services wie formspree.io recht gut...

Mit reinem HTML geht das nicht. Du musst eine Server Script Sprache dafür einsetzen, die die Daten verarbeitet und dann versendet. Dazu nutzt Du am besten PHP.

Schau mal hier: https://www.php-einfach.de/php-tutorial/php-email/


Lilly17uwu 
Beitragsersteller
 26.12.2021, 11:11

geht das vielleicht auch mit javascript?😅

tanteerna68  26.12.2021, 11:16
@Lilly17uwu

Leider nicht, da JavaScript clientseitig ausgeführt wird und diese Art von Daten nicht verarbeiten kann. Es könnte eine Verbindung zum Server geschaffen werden, z. B. mit einer AJAX Funktion. Schlussendlich müsste es aber dennoch verarbeitet werden. So könnte ein Framework wie Node.js auf dem Server dies bewerkstelligen, aber einfacher ist es definitiv mit PHP. Viel Erfolg :-)

Verwende das "action" Attribut im "form" Tag.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber