![](/img/trans.png)
[英]How to make a button in HTML that will send the current page of a website via email?
[英]How do I send an email of the current page using a button?
我正在嘗試發送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>
當我單擊按鈕時,我得到的只是“已發送消息!”。 消息,但沒有電子郵件。 我將“ john@example.com”更改為電子郵件,但是收件箱中沒有收到電子郵件。 關於什么是問題的任何想法?
如果您要堅持使用純JavaScript,那么不打開用戶電子郵件客戶端就很難做到這一點。 這將是一種糟糕的方法,因為我建議不要使用javascript:
window.open('mailto:test@example.com?subject=subject&body=body');
這種第三方解決方案更好,您可能需要檢查一下: https : //medium.com/@mariusc23/send-an-email-using-only-javascript-b53319616782
您甚至可以打開帶有預定主題和正文的電子郵件客戶端,如上所示。 如果您添加文本區域,則可以讓用戶在您的頁面中寫入電子郵件:
<textarea id="myText">
User writes stuff here
</textarea>
<button onclick="sendMail(); return false">Send</button>
SendMail調用您的JS腳本,您只需要替換window.open中的第二個單詞主體即可獲取textarea文本。 這可能會返回HTML標記內的HTML代碼,您也可以將其插入到正文中,而不是插入文本區域文本中。 (或externalHTML)
document.documentElement.innerHTML
window.open('mailto:test@example.com?subject=subject&body='+escape(document.getElementById('myText').value));
我也找到了,但是我不知道這是否適合您。 http://www.emailjs.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.