1) HTML-Formular mit Eingabefeldern
<form action="" method="post">
<label for="name">Name:</label>
<input type="text" name="name" id="name" />
<label for="Email">Email:</label>
<input type="text" name="email" id="email" />
<label for="Message">Message:</label><br />
<textarea name="message" rows="20" cols="20" id="message"></textarea>
<input type="submit" name="submit" value="Submit" />
</form>
2) Verarbeitung mit PHP
Dies könnte in einer separaten Datei (z. B. sendemail.php) sein, auf die Sie die Aktions-URL des Formulars richten würden. Oder lassen Sie das Formular an sich selbst übermitteln (lassen Sie die Aktions-URL leer) und prüfen Sie, ob einer der über POST übermittelten Werte vorhanden ist und verarbeiten Sie ihn dort.
<?php
// from the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
// set here
$subject = "Contact form submitted!";
$to = '[email protected]';
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
// redirect afterwords, if needed
header('Location: thanks.html');
?>
3) Testen Sie es
Und stellen Sie sicher, dass Sie mit den Sicherheitsnachrichten im Web auf dem Laufenden bleiben.
Danke, das war sehr hilfreich!
da ich ziemlich neu in PHP bin.
Hallo – wie immer großartige Arbeit – aber aus irgendeinem Grund kann ich das nicht zum Laufen bringen! Es leitet mich auf die Dankesseite weiter, aber die E-Mail kommt nicht an. Muss PHP speziell konfiguriert werden? Ich verwende PHP4 (aber ich beschäftige mich nicht wirklich mit PHP-Sachen!!)
Übrigens, ich liebe deine Arbeit an Twitter!
Haben Sie die <a href="/cdn-cgi/l/email-protection#4b32243e390b2e262a222765282426" rel="ugc">[email protected]' durch Ihre E-Mail-Adresse ersetzt?
großartig! – aber aus irgendeinem Grund wird es auf meine Dankesseite weitergeleitet, aber die E-Mail kommt leer an, ohne Daten. Hilfe wäre willkommen. Ich fange gerade mit PHP an.
Ich habe dasselbe Problem, es ist, als ob es die Eingaben nicht liest
Habe das Problem gelöst, die Formularmethode muss POST sein (ich bin auf meine Weise dümmer :)) )
Danke Chris noch einmal und ja NOCHMAL DANKE!!
Danke Chris, es ist wirklich hilfreich
Ich kann das immer noch nicht zum Laufen bringen. Benutze WordPress.
Ich bekomme diese Fehlermeldung: Warnung: Cannot modify header information – headers already sent by (output started at /home2/yourmedp/public_html/wp-content/themes/obvious/inc/contact-form.php:3) in /home2/yourmedp/public_html/wp-content/themes/obvious/inc/contact-form.php on line 24
Kannst du mir eine Lösung für Massen-E-Mails sagen??
Sie können foreach oder while verwenden, um eine E-Mail an jeden Benutzer zu senden.
z.B.
$mails=array(“1″=>”[email protected]”,”2″=>”[email protected]”);
foreach ($mails as $mail=>$email) {
mail($email, $subject, $body, $headers);
}
Ersetzen Sie im PHP-Teil Folgendes:
$body = <<<HTML$message
HTML;
mit
$body = $message;Und es sollte funktionieren.
Hallo, danke für diesen Code, ich habe mir die Haare gerauft, um mein Formular zum Laufen zu bringen! Ich hatte jedoch einige Probleme: Sie müssen den Code wie oben erwähnt ändern ^^^^^ und außerdem habe ich den Namen der Person nicht in der E-Mail erhalten, also habe ich "Kontaktformular abgeschickt!" durch "$name" ersetzt, und jetzt kommt ihr Name im Header durch :-)
Danke nochmal, Liam
Es funktioniert nach einigen Anpassungen
Setzen Sie die Namen und IDs der Eingabefelder und Textbereiche auf Kleinbuchstaben.
Aber ich kann es nicht so verwenden.
Ich bin mir nicht sicher, wie ich das PHP mit dem HTML verknüpfen soll. Könnte mir bitte jemand eine E-Mail schreiben?
Gerade erst am Anfang der webentwicklungsbezogenen Bildung... brauche das schon letztes Jahr.
Sehr nützlich, danke.
Ich habe Probleme beim Testen von einem lokalen Server. Wie kann ich das zum Laufen bringen, bitte?.
Ich verstehe, dass ich einen Mailserver herunterladen könnte. Irgendwelche Ideen?
Es funktioniert nur, wenn Sie genau dasselbe in den Variablennamen ($Name) schreiben wie im Eingabe-Tag in Ihrem HTML-Dokument. Ich habe es durch Kopieren und Einfügen zum Laufen gebracht, damit ich sicher war, dass die Variablen denselben Namen hatten.
Im Codebeispiel ist der Name großgeschrieben und im PHP-Code ist der Variablenname kleingeschrieben, und das verursacht das Problem.
Hoffentlich hat es geholfen.
Ah ja! Das ist definitiv ein Problem. Dies wurde nun im obigen Code behoben.
Hallo Chris,
Danke für dieses Formular. Aus irgendeinem Grund wird das Formular nicht richtig übermittelt, wenn ich eine E-Mail-Adresse eingebe. Aber wenn ich die E-Mail leer lasse oder das @ weglasse, funktioniert es. Haben Sie Vorschläge?
Prost!
Im PHP-Code ist der Punkt nach dem zweiten "$headers" ein Fehler? Oder muss er dort sein?
Das bedeutet: "füge dies zum vorhandenen String hinzu"
hi
Entschuldigung, ich bin Italiener und was bedeutet <<<HTML HTML; ?
Das habe ich schon an anderen Stellen gesehen.
Warum erhalte ich bei der Ausführung dieser Quelle
Ergebnisse sind immer
Warnung: mail() [function.mail]: Konnte keine Verbindung zum Mailserver unter "localhost" Port 25 herstellen. Überprüfen Sie Ihre "SMTP"- und "smtp_port"-Einstellungen in php.ini oder verwenden Sie ini_set().
Sie sind der Einzige, der diese Aufgabe in Begriffe gefasst hat, die für mich tatsächlich funktionierten... sehr leicht verständlich. Danke!
Hallo Leute, das funktioniert bei mir nicht :( , habe alles gemacht und auch den Code wie Danny oben erwähnt ersetzt... aber ich bekomme keine E-Mail =/ ... Irgendwelche Vermutungen, warum??
Hey, die Sache läuft gut, aber es wird keine E-Mail an mein Gmail gesendet. Was ist das Problem?
Dieser Code würde funktionieren, ist aber extrem unsicher, und Leute können das E-Mail-System hacken. Ich würde empfehlen, sich das folgende Tutorial anzusehen: http://w3schools.com/php/php_secure_mail.asp, obwohl es nicht genau befolgt werden sollte, da w3schools eher unzuverlässig ist.
Wie auch immer, dieser Code ist eine gute Basis!
Gibt es eine Möglichkeit, ein Eingabefeld in diesem Formular nicht drucken zu lassen, wenn es leer ist?
Hey Leute,
Ich, wie jemand zuvor erwähnt hat, teste das auf einem lokalen Server, um es an mein persönliches Gmail zu senden, aber ich bekomme nichts zu sehen. Ich habe auf ein paar anderen Beiträgen hier gelesen, dass es manchmal eine Weile dauern kann, weil das – – – – > oder warte ich vergeblich, weil es eigentlich nicht funktioniert.
Jedes Feedback wäre großartig =)
// G //
Was ist die Änderung im obigen Code? Es gibt keine E-Mail-Übermittlung... ich versuche, perfekte E-Mails an mich und den Benutzer zu senden... und was ist mit den Konfigurationseinstellungen?
Ich bin neu in PHP. Ich bekomme E-Mails, die gut durchkommen, aber dann bekomme ich eine Webseiten-Fehlermeldung "Die Webseite kann nicht gefunden werden", nachdem die Absendung ausgeführt wurde. Kann mir jemand helfen?
Da ich kein versierter Benutzer in der Welt des Codes bin, kann ich dieses Formular für mich nicht zum Laufen bringen. Im Moment sendet es das Formular an meine E-Mail, aber es gibt keine Nachricht im E-Mail-Text. Ich habe ersetzt
$body = $message;
aber immer noch kein Erfolg.
Ich habe auch die Formularmethode auf "post" gesetzt und die Aktion zeigt auf die PHP-Datei. Möchte jemand versuchen, sich daran zu versuchen, oder wurde es oben beantwortet und ich verstehe es einfach nicht?
Ich stehe noch am Anfang von PHP, also verstehe ich nicht alles,
Aber ich bekomme eine Fehlermeldung auf der Seite, bitte helfen Sie
Das ist die Fehlermeldung
Warnung: mail() [function.mail]: Konnte keine Verbindung zum Mailserver unter "localhost" Port 25 herstellen. Überprüfen Sie Ihre "SMTP"- und "smtp_port"-Einstellungen in php.ini oder verwenden Sie ini_set() in D:\wamp\www\contact.php on line 19
Ich bin neu in PHP, ich verstehe nicht, wo ich anfangen soll. Gibt es jemanden, der mir helfen kann?
Danke!
Hasem, das ist ganz einfach: Erstellen Sie zuerst eine PHP-Datei, zum Beispiel index.php, und eine Verarbeitungsdatei mit dem Namen form_process.php. Legen Sie diese Dateien in einen Ordner.
Kopieren Sie nun den obigen HTML-Code und fügen Sie ihn in index.php ein und fügen Sie zwischen dem action-Attribut form_process.php ein.
Fügen Sie in die Datei form_process.php den obigen PHP-Code ein, das war's. Wenn Sie den Code auf einem lokalen Server testen, verwenden Sie "Test Mail Server For localhost" für das E-Mail-Testing.
Danke.
@Chris Coyier
Danke für diesen Beitrag.
Nützlicher und einfacher Snippet.
Habe mit diesem Snippet-Beitrag 10 $ verdient.
danke
Sie haben die E-Mail gesendet, ohne den SMTP-PORT auf 597 zu ändern. Ist er standardmäßig 25?
Wie sende ich eine E-Mail, wenn der Empfänger mehr als 1000 sind?
Ich habe es auf meinem Server ausprobiert, aber ich bekomme diese Fehlermeldung:
Parse error: syntax error, unexpected $end in /home/content/41/8892341/html/toastdispatch/Apps/EmailPHPTest/emailr.php on line 25
Jede Hilfe wäre nett, ich versuche, PHP zu lernen.
Danke css-tricks! Ihr seid großartig! Ihr seid Gott!
Schöner Snippet. Kann es ohne Mailserver funktionieren?
Wie erstelle ich ein Abonnementformular mit Benachrichtigung in PHP? Bitte helfen Sie mir
Das funktioniert überhaupt nicht für mich. Bitte helfen Sie, ich werde verrückt deswegen!!
Die Dankesseite wird angezeigt, aber ich erhalte keine E-Mail in meinem Gmail. Bitte helfen Sie!!
Funktioniert nur über Webmail, das Ihr Hosting anbietet.
Mag diese Funktion... aber ich suche das Gleiche mit der Dankesseite, die in einem Lightbox geöffnet wird.
Irgendeine Hilfe bitte?