如何通过HTML和JavaScript发送电子邮件?

时间:2014-05-13 12:23:24

标签: javascript html email send

我的网站上有联系表格,我想发一个发送按钮。我不希望计算机上的电子邮件程序启动,我只想按下按钮立即将文本发送到我的电子邮件。我现在已经在互联网上搜索了几个星期而且我放弃了。

<form method="post" name="contact" action="#">
    <label for="author">Name:</label>
    <input type="text" id="author" name="author" class="required input_field" />
    <div class="cleaner h10"></div>

    <label for="email">Email:</label>
    <input type="text" class="validate-email required input_field" name="email" id="email" />
    <div class="cleaner h10"></div>

    <label for="subject">Subject:</label>
    <input type="text" class="validate-subject required input_field" name="subject" id="subject"/>                             
    <div class="cleaner h10"></div>

    <label for="text">Message:</label>
    <textarea id="text" name="text" rows="0" cols="0" class="required"></textarea>
    <div class="cleaner h10"></div>             

    <input type="submit" value="Send" id="submit" name="submit" class="submit_btn float_l" />
    <input type="reset" value="Reset" id="reset" name="reset" class="submit_btn float_r" />
</form>

5 个答案:

答案 0 :(得分:6)

如果您不想使用 php ,也可以尝试使用外部API 为您提供要发送的电子邮件。

Mandrill 可以做到这一点。 每月最多可免费发送12k封电子邮件。

在您的页面中,代码将如下所示:

$.ajax({
  type: “POST”,
  url: “https://mandrillapp.com/api/1.0/messages/send.json”,
  data: {
    ‘key’: ‘YOUR API KEY HERE’,
    ‘message’: {
      ‘from_email’: ‘YOUR@EMAIL.HERE’,
      ‘to’: [
          {
            ‘email’: ‘RECIPIENT_NO_1@EMAIL.HERE’,
            ‘name’: ‘RECIPIENT NAME (OPTIONAL)’,
            ‘type’: ‘to’
          },
          {
            ‘email’: ‘RECIPIENT_NO_2@EMAIL.HERE’,
            ‘name’: ‘ANOTHER RECIPIENT NAME (OPTIONAL)’,
            ‘type’: ‘to’
          }
        ],
      ‘autotext’: ‘true’,
      ‘subject’: ‘YOUR SUBJECT HERE!’,
      ‘html’: ‘YOUR EMAIL CONTENT HERE! YOU CAN USE HTML!’
    }
  }
 }).done(function(response) {
   console.log(response); // if you're into that sorta thing
 });

这里如何:

https://medium.com/design-startups/b53319616782

http://www.codecademy.com/tracks/mandrill (CodeCademy可以教授如何使用API​​)

答案 1 :(得分:1)

这也许你在寻找什么:http://www.sanwebe.com/2011/12/making-simple-jquery-ajax-contact-form。您只能使用PHP和HTML + AJAX执行您想要的操作。用HTML创建表单,然后使用Jquery POST请求发送请求+数据,如下所示:

        $.post('sendmail.php', post_data, function(response){  ... }

答案 2 :(得分:1)

发送邮件的过程发生在服务器端,HTML / JavaScript是客户端的。据我所知,你没有使用网络服务器,也没有在某个地方托管网站。

来自XAMPP的新安装有一个FakeSendMail选项,您可以使用它来模拟PHP中的mail()函数。 XAMPP是最着名的localhost Web服务器之一,您可以用它来完成项目,以防您真的不需要实际发送该邮件。如果您这样做,我建议您使用虚拟主机。

但首先,您需要了解客户端和服务器端之间的区别。就客户端而言,它所做的就是呈现静态数据。 (HTML / CSS / JS)。但是,对于服务器端,它有更多的用途,因为你可以使用数据库,从中获取或插入数据,并最终呈现将由浏览器(客户端)处理的数据

答案 3 :(得分:0)

我认为你没有搜索过&#39;网上几周要么:) 经过一次谷歌搜索,我得到以下内容: https://medium.com/design-startups/b53319616782

技术上不可能仅使用javascript发送电子邮件。您总是需要后端服务。但如上面的链接所述,主要有免费(取决于数量)服务(如上文所述:https://mandrill.com/)。

这是上面链接的代码示例:

$.ajax({
  type: 'POST',
  url: 'https://mandrillapp.com/api/1.0/messages/send.json',
  data: {
    'key’: 'YOUR API KEY HERE’,
    'message': {
      'from_email': 'YOUR@EMAIL.HERE',
      'to': [
          {
            'email': 'RECIPIENT_NO_1@EMAIL.HERE',
            'name': 'RECIPIENT NAME (OPTIONAL)',
            'type': 'to'
          },
          {
            'email': 'RECIPIENT_NO_2@EMAIL.HERE',
            'name': 'ANOTHER RECIPIENT NAME (OPTIONAL)',
            'type': 'to'
          }
        ],
      'autotext': 'true',
      'subject': 'YOUR SUBJECT HERE!',
      'html': 'YOUR EMAIL CONTENT HERE! YOU CAN USE HTML!'
    }
  }
}).done(function(response) {
    console.log(response); // if you're into that sorta thing
});

希望这有帮助。

祝你好运, 克里斯

答案 4 :(得分:0)

我是懒惰的,并且从W3Schools无耻地复制过来(请不要说W3schools是多么糟糕,我知道但这符合目的!)&gt;

<h2>Feedback Form</h2>
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"])) {
  ?>
  <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
  From: <input type="text" name="from"><br>
  Subject: <input type="text" name="subject"><br>
  Message: <textarea rows="10" cols="40" name="message"></textarea><br>
  <input type="submit" name="submit" value="Submit Feedback">
  </form>
  <?php 
} else {    // the user has submitted the form
  // Check if the "from" input field is filled out
  if (isset($_POST["from"])) {
    $from = $_POST["from"]; // sender
    $subject = $_POST["subject"];
    $message = $_POST["message"];
    // message lines should not exceed 70 characters (PHP rule), so wrap it
    $message = wordwrap($message, 70);
    // send mail
    mail("webmaster@example.com",$subject,$message,"From: $from\n");
    echo "Thank you for sending us feedback";
  }
}
?>