如何在电子邮件中发送 HTML 表单 .. 而不仅仅是 MAILTO

新手上路,请多包涵

我有一个供人们填写的 HTML 表单,我希望当他们单击提交按钮时,它只会发送电子邮件,而不是调出他们的电子邮件并要求他们自己发送消息。

当我使用时:

 <form action="MAILTO:emailaddress@email.com"... >

所做的只是打开一个新窗口并填充电子邮件的正文,但我希望它只发送一封电子邮件。

有没有办法格式化电子邮件的输出格式?而不仅仅是字段名称和输入值的列表。

谢谢。

原文由 Joe W 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 425
2 个回答

我现在实际上使用 ASP C# 来发送我的电子邮件,看起来像这样:

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

        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("testing@gmail.com", "pward");

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

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

这是一个使用 gmail 作为 smtp 邮件发件人的示例。这里的某些内容不是必需的,但这是我使用它的方式,因为我相信有更多更有效的方法以同样的方式出现。

原文由 Joe W 发布,翻译遵循 CC BY-SA 3.0 许可协议

> 2021 答案 = 使用 GMail 的 简单 方法( _5 分钟_)

昨天我们遇到了 类似 的挑战,我们使用 Google Apps 脚本解决了它!

通过 Google 从 没有 后端( _服务器_)的 HTML 表单发送电子邮件!

该解决方案需要 5 分钟 才能实施,我已经用 分步说明进行了 记录: https: //github.com/nelsonic/html-form-send-email-via-google-script-without-server

简要概述

A. 使用示例脚本,部署 Google App Script

将示例脚本部署为 Google 电子表格 APP 脚本: google-script-just-email.js

3-script-editor-showing-脚本

请记住 将脚本中的 TO_ADDRESS 设置为您希望将电子邮件发送到的位置。

并复制 APP URL ,以便您在下一步 发布脚本 时使用它。

B. 创建您的 HTML 表单并将 action 设置为 App URL

使用示例 html 文件: index.html 创建一个基本表单。

7-html-表单

请记住 将您的 APP URL 粘贴到 HTML 表单中的表单 action 中。

C. 在浏览器中测试 HTML 表单

在浏览器中打开 HTML 表单,输入一些数据并提交!

html表格

提交表格。您应该看到已发送的确认信息: 表格已发送

打开您设置的电子邮件地址的收件箱( _如上_)

收到电子邮件

完毕。

关于这 一切都是定制 的,您可以使用您最喜欢的 CSS轻松地 设置 表单 _样式/主题_, 并将 提交的 数据 存储Google 电子表格 中以进行 快速 分析。

GitHub 上 提供了 _完整的说明_:

https://github.com/nelsonic/ html-form-send-email-via-google-script-without-server

原文由 nelsonic 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题