使用HTML5/Javascript模板发送联系人电子邮件表单

使用HTML5/Javascript模板发送联系人电子邮件表单,javascript,html,forms,email,Javascript,Html,Forms,Email,我最近使用HTML5模板为一个朋友的企业创建了一个简单的网站。它还包含一些可爱的Javascript元素。该网站的网址是 其中一个元素是页面底部的联系人表单。看起来“发送消息”按钮被编码为完全不做任何事情。让此表单将用户输入的值(即:他们的姓名、电子邮件和消息)转发到专用的电子邮件收件箱有多简单 如果不是那么简单,还有哪些其他选项可以使表单功能化,同时也与站点的总体主题集成 我假设答案很简单,但我是HTML5的新手,对Javascript一无所知。我们将提前感谢您的帮助。这在纯Javascrip

我最近使用HTML5模板为一个朋友的企业创建了一个简单的网站。它还包含一些可爱的Javascript元素。该网站的网址是

其中一个元素是页面底部的联系人表单。看起来“发送消息”按钮被编码为完全不做任何事情。让此表单将用户输入的值(即:他们的姓名、电子邮件和消息)转发到专用的电子邮件收件箱有多简单

如果不是那么简单,还有哪些其他选项可以使表单功能化,同时也与站点的总体主题集成


我假设答案很简单,但我是HTML5的新手,对Javascript一无所知。我们将提前感谢您的帮助。

这在纯Javascript中是不可能的。发送电子邮件需要服务器端处理


有几个网站可以让您生成简单的电子邮件表单,请查看:

HTML不允许您向电子邮件提交表单

您可以使用
mailto
,但这不是最友好的功能。它将打开Outlook并将表单数据转储到电子邮件内容中。但是有很多问题

我的建议是使用“表单邮件脚本”。但这只在服务器端完成,所以您需要有一个web服务器。你需要在谷歌上搜索并阅读它们


在我看来,最好的办法是用PHP创建一个简单的后端应用程序

  • 在根目录中创建文件
    mail.php
  • 在HTML
    表单
    标记中,您需要添加
    操作
    属性以及
    mail.php
    文件路径和
    方法
    属性,以便表单知道使用哪个HTTP请求方法发送数据
    。这将为“发送消息”按钮添加要触发的操作,您说该按钮不起作用

    这是因为现在按钮知道如果你点击它该做什么。它从表单输入字段获取所有数据,并将它们发送到
    mail.php
    文件。此文件需要获取并验证它们。(您至少应该为表单中的必填字段创建验证,以检查它们是否为空。您可以在内置html属性中或在JavaScript的帮助下进行一些额外的验证)

  • 现在最重要的事情是在
    Mail.php
    中创建Mail函数。以下是执行此操作所需的所有文档:

  • 以下是代码(您的站点不工作,所以我只是临时使用输入字段):

    HTML:


    正如其他答案中提到的,您不能使用HTML5发送电子邮件。这需要在您的服务器上完成

    一个简单而免费的解决方案是使用。您可以并拥有如下
    doPost
    方法:

    function doPost(e){
        var email = e.parameter.email;
        var subject = 'E-mail from website';
        var message = e.parameter.message;
        MailApp.sendEmail(emailAddress, subject, message);
    
        return ContentService.createTextOutput('E-mail sent!');
    }
    
    <form action="url to your deployed app script" method="post">
        <input type="email" name="email"></input>
        <textarea name="message"></textarea>
        <input type="submit" value="Submit"></input>
    </form>
    
    在您的HTML中,您将有如下表单:

    function doPost(e){
        var email = e.parameter.email;
        var subject = 'E-mail from website';
        var message = e.parameter.message;
        MailApp.sendEmail(emailAddress, subject, message);
    
        return ContentService.createTextOutput('E-mail sent!');
    }
    
    <form action="url to your deployed app script" method="post">
        <input type="email" name="email"></input>
        <textarea name="message"></textarea>
        <input type="submit" value="Submit"></input>
    </form>
    
    
    
    当您将应用程序脚本设置为Web应用程序时,将显示要放入
    操作
    属性的URL:


    你是指JavaScript而不是Java吗?这两个很不一样。@MattBall啊,是的。我缺乏知识,这表明我已经准备好了。在原始帖子中编辑。投票关闭,因为答案很简单:你不能只在客户端使用JavaScript发送电子邮件。稍长一点的解释是,您要么需要自己的某种服务器后端来处理接收邮件并将其作为SMTP电子邮件发送,要么使用某种第三方服务(如果存在的话)。除此之外,对于可用选项,这里可能的“答案”是无限的&在这些选项中进行选择主要是基于意见的,因此保持这种开放性是没有成效的。