我有一个 div,它的内容是由 JavaScript 生成的。我想知道是否可以通过电子邮件发送 div 的内容?也可以在 JavaScript 中完成还是必须在 PHP 中完成?
3 回答
您不能直接从浏览器中的 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
创建一个带有单个文本区域的隐藏表单,将表单方法设置为 POST 并将操作设置为“mailto:;subject:”,然后提交。表单的内容,即文本区域中的DIV内容将作为正文的一部分作为电子邮件发送出去,并且机器上的默认电子邮件客户端将被打开以实际发送邮件。
这必须在 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'];