Подтвердить что ты не робот

Как отправить HTML-форму в электронную почту.. не только MAILTO

У меня есть HTML-форма для заполнения людьми, и я хочу, чтобы это было, когда они нажимают кнопку отправки, она просто отправит электронное письмо, а не откроет электронную почту и попросит отправить сообщение сами.

Когда я использую:

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

Все, что делает, открывает новое окно и заполняет тело письма, но я хочу, чтобы он просто отправил электронное письмо.

И есть ли способ отформатировать вывод того, как будет выглядеть электронное письмо? Вместо простого списка имен полей и введенного значения.

Спасибо.

4b9b3361

Ответ 1

Я фактически использую ASP С# для отправки своих писем сейчас, с чем-то вроде:

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;
        }
    }
}

Это пример использования gmail в качестве отправителя почты smtp. Некоторые из того, что здесь, не нужны, но я использую его, так как я уверен, что есть более эффективные способы таким же образом.

Ответ 2

> 2017 Ответ = простой способ с помощью Google Apps Script (5 мин.)

У нас была аналогичная задача решить вчера, и мы решили ее с помощью Google Apps Script!

Отправка электронной почты из формы HTML без бэкэнда (сервера) через Google!

Решение реализовано 5 минут, и я документировал с помощью пошаговых инструкций: https://github.com/nelsonic/ HTML-форм-отправить-почту-через-google- script -Без-сервер

Краткий обзор

A. Используя образец script, разверните приложение Google Script

Разверните образец Script как приложение Google Spreadsheet APP Script: google- script -just-email.js

3-script-editor-showing-script

помните, чтобы установить TO_ADDRESS в Script туда, где вы хотите отправить электронные письма.
и скопируйте URL-адрес APP, чтобы вы могли использовать его на следующем шаге, когда вы опубликуете Script.

В. Создайте свою HTML-форму и установите action в URL-адрес приложения

Используя образец html: index.html создайте базовую форму.

7-html-form

помните, чтобы вставить URL-адрес APP в форму action в форме HTML.

С. Проверьте форму HTML в браузере

Откройте HTML-форму в своем браузере, введите некоторые данные и отправьте их!

html form

Отправить форму. Вы должны увидеть подтверждение, что оно было отправлено: form sent

Откройте папку "Входящие" для указанного вами адреса электронной почты (вверху)

email received

Готово.

Все об этом настраивается, вы можете легко стиль/тема форма с вашей любимой библиотекой CSS. и Сохранить предоставленные данные в Таблице Googleдля быстрого анализа.
полные инструкции доступны в GitHub:
https://github.com/nelsonic/ html-form-send-email-via-google- script -without-server

Ответ 3

У вас есть смысл, но вы, похоже, неправильно понимаете концепцию отправки электронных писем.

HTML анализируется на стороне клиента, в то время как электронное письмо должно быть отправлено с сервера. Вы не можете сделать это в чистом HTML. Я бы предложил написать PHP script, который будет касаться отправки электронной почты для вас.

В принципе, вместо MAILTO, ваше действие формы должно указывать на PHP script. В script извлеките значения, переданные формой (в PHP они доступны через супергалогл $_POST) и используют функцию отправки электронной почты (mail()).

Конечно, это можно сделать и на других серверных языках. Я даю PHP-решение, потому что PHP - это язык, с которым я работаю.

Простой примерный код:

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>

Конечно, script должен содержать некоторые меры безопасности, такие как проверка того, доступны ли домены $_POST, а также дополнительные заголовки электронной почты (например, электронная почта отправителя), возможно, способ справиться с символом кодирование - но это слишком сложно для быстрого примера;).

Ответ 4

Я не знаю, что то, что вы хотите сделать, возможно. По моему мнению, отправка электронной почты из веб-формы требует, чтобы язык на стороне сервера связывался с почтовым сервером и отправлял сообщения.

Вы используете PHP или ASP.NET?

Пример ASP.NET

Пример PHP

Ответ 5

<FORM Action="mailto:xyz?Subject=Test_Post" METHOD="POST">
    mailto: protocol test:
    <Br>Subject: 
    <INPUT name="Subject" value="Test Subject">
    <Br>Body:&#xa0;
    <TEXTAREA name="Body">
    kfdskfdksfkds
    </TEXTAREA>
    <BR>
    <INPUT type="submit" value="Submit"> 
</FORM>