it-swarm.com.de

Wie sende ich ein HTML-Formular in einer E-Mail .. nicht nur MAILTO

Ich habe ein HTML-Formular, das die Leute ausfüllen können. Wenn sie auf die Schaltfläche "Senden" klicken, wird nur die E-Mail gesendet, die E-Mail wird nicht aufgerufen, und sie werden aufgefordert, die Nachricht selbst zu senden.

Wenn ich benutze:

<form action="MAILTO:[email protected]"... >

Alles, was Sie tun müssen, ist, ein neues Fenster zu öffnen und den Text der E-Mail auszufüllen. Ich möchte jedoch, dass die E-Mail nur gesendet wird.

Und gibt es eine Möglichkeit, die Ausgabe der E-Mail zu formatieren? Anstelle nur einer Liste der Feldnamen und des eingegebenen Wertes.

Vielen Dank.

35
Joe W

Ich verwende eigentlich ASP C #, um meine E-Mails jetzt mit etwas zu senden, das so aussieht:

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Form.Count > 0)
    {
        string formEmail = "";
        string fromEmail = "[email protected]";
        string defaultEmail = "[email protected]";

        string sendTo1 = "";

        int x = 0;

        for (int i = 0; i < Request.Form.Keys.Count; i++)
        {
            formEmail += "<strong>" + Request.Form.Keys[i] + "</strong>";
            formEmail += ": " + Request.Form[i] + "<br/>";
            if (Request.Form.Keys[i] == "Email")
            {
                if (Request.Form[i].ToString() != string.Empty)
                {
                    fromEmail = Request.Form[i].ToString();
                }
                formEmail += "<br/>";
            }

        }
        System.Net.Mail.MailMessage myMsg = new System.Net.Mail.MailMessage();
        SmtpClient smtpClient = new SmtpClient();

        try
        {
            myMsg.To.Add(new System.Net.Mail.MailAddress(defaultEmail));
            myMsg.IsBodyHtml = true;
            myMsg.Body = formEmail;
            myMsg.From = new System.Net.Mail.MailAddress(fromEmail);
            myMsg.Subject = "Sent using Gmail Smtp";
            smtpClient.Host = "smtp.gmail.com";
            smtpClient.Port = 587;
            smtpClient.EnableSsl = true;
            smtpClient.UseDefaultCredentials = true;
            smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "pward");

            smtpClient.Send(defaultEmail, sendTo1, "Sent using gmail smpt", formEmail);

        }
        catch (Exception ee)
        {
            debug.Text += ee.Message;
        }
    }
}

Dies ist ein Beispiel für die Verwendung von Google Mail als SMTP-Mail-Absender. Einiges von dem, was hier drin ist, wird nicht benötigt, aber es ist, wie ich es benutze, da ich sicher bin, dass es auf dieselbe Weise effektivere Wege gibt.

2
Joe W

> 2019 Answer = The Easy Way using Google Apps Script ( 5 Mins)

Wir hatten gestern eine ähnliche Herausforderung zu lösen, und wir haben sie mit einem Google Apps-Skript gelöst!

E-Mail von einem HTML-Formular senden Ohne ein Backend ( Server) über Google!

Die Umsetzung der Lösung dauert 5 Minuten und ich habe mit = dokumentiert Schritt für Schritt Anleitung: https://github.com/nelsonic/ HTML-Formular -sende-email-via-google-script-ohne-server

Kurzübersicht

A. Stellen Sie mithilfe des Beispielskripts ein Google App-Skript bereit

Stellen Sie das Beispielskript als Google Spreadsheet APP-Skript bereit: google-script-just-email.js

3-script-editor-showing-script

denk dran um TO_ADDRESS im Skript, wohin die E-Mails gesendet werden sollen.
und kopieren Sie die APP-URL , damit Sie sie im nächsten Schritt verwenden können, wenn Sie veröffentlichen Sie das Skript.

B. Erstellen Sie Ihr HTML-Formular und setzen Sie action auf die App-URL

Verwenden Sie die Beispieldatei html: index.html Erstellen Sie ein Basisformular.

7-html-form

Denken Sie daran , Ihre APP-URL in das Formular einzufügen action im HTML-Formular.

C. Testen Sie das HTML-Formular in Ihrem Browser

Öffnen Sie das HTML-Formular in Ihrem Browser, geben Sie einige Daten ein und senden Sie es ab!

html form

Senden Sie das Formular. Sie sollten eine Bestätigung sehen, dass es gesendet wurde: form sent

Öffne den Posteingang für die angegebene E-Mail-Adresse ( oben)

email received

Getan.

Alles darum geht es anpassbar, Sie können leicht Stil/Thema the form mit Ihrem Favoriten [~ # ~] css [~ # ~] Library und Store die übermittelten Daten in einer Google-Tabelle für schnell Analyse.
Die vollständige Anleitung sind verfügbar auf GitHub :
https://github.com/nelsonic/ HTML-Formular-E-Mail-senden-über-Google-Skript-ohne-Server

47
nelsonic

Sie machen Sinn, aber Sie scheinen das Konzept des Versendens von E-Mails falsch zu verstehen.

HTML wird auf der Clientseite analysiert, während die E-Mail vom Server gesendet werden muss. Sie können es nicht in reinem HTML tun. Ich würde vorschlagen, ein PHP Skript zu schreiben, das sich mit dem E-Mail-Versand für Sie befasst.

Grundsätzlich muss die Aktion Ihres Formulars anstelle von MAILTO auf das Skript PHP) verweisen. Rufen Sie im Skript die vom Formular übergebenen Werte ab (in PHP sind sie über _$_POST_ superglobal) und benutze die E-Mail-Sendefunktion (mail()).

Dies kann natürlich auch in anderen serverseitigen Sprachen erfolgen. Ich gebe eine PHP Lösung, weil PHP die Sprache ist, mit der ich arbeite.

Ein einfacher Beispielcode:

form.html:

_<form method="post" action="email.php">
    <input type="text" name="subject" /><br />
    <textarea name="message"></textarea>
</form>
_

email.php:

_<?php
    mail('[email protected]', $_POST['subject'], $_POST['message']);
?>
<p>Your email has been sent.</p>
_

Natürlich sollte das Skript einige Sicherheitsmaßnahmen enthalten, z. B. die Überprüfung, ob die Werte für $ _POST überhaupt verfügbar sind, sowie zusätzliche E-Mail-Header (z. B. die E-Mail des Absenders), möglicherweise eine Möglichkeit, mit der Zeichenkodierung umzugehen komplex für ein kurzes beispiel;).

23
mingos

Ich weiß nicht, was Sie tun wollen, ist möglich. Nach meinem Verständnis erfordert das Senden einer E-Mail über ein Webformular eine serverseitige Sprache, um mit einem Mailserver zu kommunizieren und Nachrichten zu senden.

Führen Sie PHP oder ASP.NET aus?

ASP.NET-Beispiel

PHP-Beispiel

4
raydowe