通过电子邮件发送Div的内容

时间:2012-10-03 09:56:43

标签: javascript email html

我有一个div,其内容由JavaScript生成。我想知道是否可以通过电子邮件发送div的内容?它也可以在JavaScript中使用,或者必须在PHP中完成吗?

3 个答案:

答案 0 :(得分:1)

您无法在浏览器中直接通过JavaScript发送电子邮件。您需要将信息发送到服务器端(例如PHP)文件。

您可以使用form执行此操作,但之后需要一个表单字段。

如果是div,则应使用JavaScript。您可以发送请求(使用AJAX),或者,如果信息简短且不敏感,您可以导航到发送电子邮件的PHP页面并将信息添加到URL字符串。

这是一个非常快速的代码模型。实际上,您应该过滤输入并编写干净的代码等等。

使用Javascript:

window.location.href= "http://www.myDomain.com/email.php?data=" + theData ;

其中 http://www.myDomain.com/email.php 是php文件的url, theData 是包含div内容的变量。

PHP

<?php
  mail("me@myDomain.com", "Content of div", $_GET['data']);  // arguments are: to, subject, body
?>

$ _ GET ['data']是上面JavaScript发送的内容。

我没有包含JavaScript来将div内容放入变量 theData

答案 1 :(得分:1)

使用单个textarea创建隐藏表单,将表单方法设置为POST,将操作设置为“mailto:; subject:”,然后提交。表格的内容,即文本区域中DIV的内容将作为电子邮件发送的正文的一部分,并且机器上的默认电子邮件客户端将被打开以实际发送邮件。

答案 2 :(得分:1)

这必须在PHP中完成,因为JavaScript无法发送电子邮件。

使用JavaScript可以做什么 - 抓取DIV内容并发送到将发送电子邮件的PHP脚本。

如果你有这样的事情:

<form action="your_php_script.php" method="POST">
<textarea name="body"></textarea>
<input type="submit" value="Send" />
</form>

然后它将在没有AJAX的情况下工作,并将您重定向到 your_php_script.php 传递textarea值。

但是如果你想通过AJAX发送,它可以像这样简单地加上一些JS代码:

$('form').submit(function() {
   var body = $('input[name="body"]').val();
      $.ajax({
         type: 'POST',
         data: 'body='+body,
         success: function() {
            alert('Message was sent');
         },
         error: function(error) {
            alert('Error occured: ',error);
         }
      });
   return false;
});

在PHP脚本中,您可以使用以下方法获取值:

$body = $_POST['body'];