1

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

4

3 回答 3

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 发送的内容。

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

于 2012-10-03T09:58:57.193 回答
1

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

于 2012-10-03T09:59:14.007 回答
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'];
于 2012-10-03T09:59:22.120 回答