【问题标题】:HTML Form SubmitHTML 表单提交
【发布时间】:2012-01-20 17:55:44
【问题描述】:

我的网站上有一个 HTML 表单。该表单有多个字段,在提交按钮上单击我希望将填写的数据直接发送到电子邮件地址。 .

我正在使用 POST 方法。

但是,当我输入数据并提交时,它会打开默认电子邮件客户端 (Outlook)。如我所愿,应在不打开默认电子邮件客户端的情况下将数据直接发送到指定地址。它应该为用户抽象。

这是我的代码:

  <form id="form2" method="get" class="contact_us" action="mailto:myemail@gmail.com">
<p><font face="Arial, Helvetica, sans-serif">
  <label>Name
  <input type="text" class="fields_contact_us" name="textfield" />
  </label>
  <label>E-mail
  <input type="text" class="fields_contact_us" name="textfield2" />
  </label>
  <label>
Your message:
<textarea name="textarea" cols="" rows=""></textarea>
  </label>
  <label>
  <input type="submit" class="submit_button_contact" name="Submit3" value="Submit" />
  </label>
</font></p>

谁能建议在这里做的最好的事情是什么?

【问题讨论】:

  • 仅使用 HTML 是无法做到这一点的。你需要一些服务器端的东西(PHP 对你来说可能是最便宜的托管,并且那里有大量的免费资源/脚本)来处理 POST 数据和撰写电子邮件。可能有很多服务可以为你做这件事,有一个谷歌,比如“给我发电子邮件 HTML 网络表单”,还有货比三家。我敢肯定会有一些免费的解决方案在敲门。祝你好运
  • 我的主机服务器信息:主机包 500MBx800 服务器名称 s1 cPanel 版本 11.30.5 (build 6) 主题 x3 Apache 版本 2.0.63 PHP 版本 5.2.16 MySQL 版本 5.0.92-community Architecture x86_64 Operating系统 linux 共享 IP 地址 67.225.203.66 sendmail 的路径 /usr/sbin/sendmail Perl 的路径 /usr/bin/perl 内核版本 2.6.9-67.0.7.ELsmp cPanel Pro 1.0 (RC1)
  • typedef1,因为你有 PHP 在那里看到蒂姆关于搜索查询的答案,你可以用它来获得一堆关于如何实现你想要的教程。
  • 你在表单中使用了get方法

标签: html forms


【解决方案1】:

您需要将其传递到具有服务器端语言的页面,例如

该页面将处理请求并发送电子邮件。

【讨论】:

    【解决方案2】:

    如果您运行的是静态 HTML 网站,则运行自己的后端来收集表单数据可能不方便或具有挑战性。

    您可以使用大量表单后端提供商从云中的表单收集数据,然后将数据处理到电子邮件或其他系统,如 mailchimp、hubspot、谷歌应用程序等。

    Formkeep 就是这样一种解决方案。

    您需要做的就是更新 action 属性。您的表单标签应如下所示,注意使用 FormKeep 中提供给您的令牌更新突出显示的 URL 的下划线区域:

    <form accept-charset="UTF-8" action="https://formkeep.com/f/exampletoken" method="POST">
    

    您可以从 Formkeep 发送到电子邮件、slack 或一堆其他应用程序。

    【讨论】:

      【解决方案3】:

      action 属性does not work 中使用带有mailto: 方案的URI。

      您需要将 HTTP(或 HTTPS)URI 与服务器端表单处理程序一起使用。

      您可以在现有主机上安装一个。具体如何做取决于支持哪些服务器端语言、您对这些语言的个人偏好以及服务器如何配置以运行它们。

      【讨论】:

        【解决方案4】:

        首先,您的代码中有一些不正确的地方,例如您的表单使用 get 方法而不是 post。

        此外,您必须创建某种可用于邮件的后端脚本,您可以使用例如 PHP,但它们还有其他可能性,例如 ruby​​ 或 ASP。 mailto:myemail@gmail.com 根本不足以发送邮件,所有表单字段将被粘贴在一起,并且某些浏览器(例如歌剧)甚至不支持此操作。

        如果你真的想要这个添加 enctype="text/plain" 到你的表单行,但网景浏览器不知道如何处理这个。

        Google 到“简单的 PHP 电子邮件表单”之类的东西,以获取有关如何创建电子邮件表单的多个结果,希望这会对您有所帮助。

        【讨论】:

        • 问题是我已经使用 Google 文档表单对其进行了配置。但唯一的问题是我必须使用谷歌创建的表单。相反,我希望使用我自己的表单
        【解决方案5】:

        常见的解决方案是将数据发布到能够通过SMPT 发送电子邮件的服务器页面。

        不那么容易的原因。我能想到两个:

        1. 如果允许从浏览器(客户端)以编程方式发送电子邮件,则会存在安全问题,即会暴露太多信息。这会被垃圾邮件发送者过度滥用。
        2. 大多数电子邮件都是使用 TCP 发送的,它是一种比 HTTP 更低级别的通信协议(浏览器/js 的用途)。这类似于在 ATM 机上设置一个按钮,用于通知银行经理。

        【讨论】:

          猜你喜欢
          • 2011-03-22
          • 2017-02-17
          • 1970-01-01
          • 2016-01-09
          • 2016-12-04
          • 2015-07-09
          • 2014-02-01
          • 2012-02-21
          • 2022-01-21
          相关资源
          最近更新 更多