【问题标题】:Subscribe to Newsletter Form订阅通讯表格
【发布时间】:2014-04-01 10:48:26
【问题描述】:

我有一个包含输入字段和提交按钮的表单。

<form class="subscribe">
      <div class="">
        <input type="text" placeholder="Your e-mail adresss">
        <span>
          <button type="button">Subscribe</button>
        </span>
      </div>
    </form>

什么是仅使用前端实现此功能的最简单方法,以便在输入新电子邮件时我会收到一封包含新注册信息的电子邮件。仅使用 JS/Jquery 可以吗?

【问题讨论】:

  • 不。不可能。您不能直接从 javascript 发送电子邮件。您需要一个邮件服务器来发送它们
  • 您希望从客户的实际浏览器向您发送一封电子邮件?如果这就是您所追求的,那么出于非常好的安全原因,它就不会发生。你需要服务器端代码
  • 当用户输入电子邮件并点击订阅时,我只想收到有关此新注册的通知(电子邮件)。
  • 在这种情况下,编写服务器端代码。 Javascript 永远不会允许您直接从客户端的浏览器发送。
  • 首先,OP应该学习HTTP的基础知识...

标签: javascript jquery html css forms


【解决方案1】:

这在前端是不可能的。你必须做这个服务器端。

纯 javascript 唯一可能的事情是使用预定义的消息为用户提供默认的电子邮件客户端。但是用户仍然需要发送它。

function sendMail() {
    var link = "mailto:me@example.com"
             + "?cc=myCCaddress@example.com"
             + "&subject=" + escape("This is my subject")
             + "&body=" + escape(document.getElementById('myText').value)
    ;

    window.location.href = link;
}

【讨论】:

    【解决方案2】:

    是的,这现在是可能的!你甚至不需要 javascript/jquery 来实现它。

    有一个很好的 API 端点,您可以使用它来发送电子邮件,例如 作为这个:https://formsubmit.co

    您可以通读文档以获取更多信息。但这里是 一个可以使用的小sn-p:

    
    <!--
    *Provide your email address on action attribute
    *The email you provide on action attribute will be the one to receive an email.
    -->
    <form action="'https://formsubmit.co/yourEmail@email.com" method="POST">
       <input name="email" type="email" required>
       <!-- You can add more input/fields, this message input is just to notify you about the subscribers-->
       <input hidden name="message" value="Hey! I want to subscribe on your news letter." type="text">
       
       <button type="submit">Subscribe</button>
    </form>
    
    

    【讨论】:

    • 这太棒了!感谢分享:)
    【解决方案3】:

    如果您想发送任何邮件,您必须使用服务器端功能,但 javascript/jquery 是客户端脚本。

    您可以这样做发出 ajax 请求并发送所有数据,然后根据您的需要发送邮件。

    【讨论】:

      【解决方案4】:

      javascript 或 jquery 无法提供该功能,因为它将在客户端浏览器中加载和执行。要发送邮件,您需要协议 (SMTP) 和服务器帮助。 解决方案:

      1.使用 AJAX 并序列化您的表单元素并将其发布到服务器文件

      2.创建您的服务器端文件并在其中获取发布的值并发送mail.ex:php(服务器端)

       mail("youremailaddress@gmail.com", "subject" .$email, $message);
      

      需要更多东西,请参阅this ..

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 2015-08-25
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多