我正在尝试发送我的html页面的电子邮件。这是我到目前为止的代码:
<script language="javascript">
function emailCurrentPage() {
window.location.href = "mailto:?subject=" + document.title + "&body=" + encodeURI(document.location);
}
</script>
<button onclick="emailCurrentPage()">Email page</button>
发送当前页面的链接,但我希望电子邮件中显示整个html页面。有没有完成这个?
更新和编辑:所以我决定尝试通过使用PHP来解决这个问题,因为我看起来似乎无法用javascript实现。我对php知之甚少。到目前为止,这是我的代码:
<?php
$to = 'john@example.com';
$subject = 'A test email!';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Put your HTML here
$message = file_get_contents('example.html');
// Mail it
mail($to, $subject, $message, $headers);
echo "Message Sent!"
}
?>
<form action="php/emailPage.php" method="post">
<input type="submit" name="submit" value="Email Page">
</form>
当我点击按钮时,我得到的是&#34;消息已发送!&#34;消息但没有电子邮件。我更改了&#34; john@example.com"到我的电子邮件但我的收件箱中没有收到电子邮件。关于问题是什么的任何想法?
答案 0 :(得分:1)
如果你想坚持纯粹的javascript,如果不打开用户电子邮件客户端就很难做到这一点。这将是一种可怕的方式,因为我建议不要使用javascript:
window.open('mailto:test@example.com?subject=subject&body=body');
此第三方解决方案更好,您可能需要查看它:https://medium.com/@mariusc23/send-an-email-using-only-javascript-b53319616782
答案 1 :(得分:0)
您可以打开如上所示的电子邮件客户端,甚至是预定的主题和正文。如果您添加textarea,您可以让用户在您的页面中编写电子邮件:
<textarea id="myText">
User writes stuff here
</textarea>
<button onclick="sendMail(); return false">Send</button>
SendMail调用你的JS脚本,你只需要替换window.open中的第二个单词body来获取textarea文本。这可能会返回HTML标记中的HTML代码,您可以将其插入到正文中,而不是textarea文本。 (或outerHTML)
document.documentElement.innerHTML
window.open('mailto:test@example.com?subject=subject&body='+escape(document.getElementById('myText').value));
我也发现了这个,但我不知道这是否适合你。 http://www.emailjs.com/
答案 2 :(得分:0)