Canvas 2D 網頁應用/電子郵件
| 本節是一個存根。 您可以透過 擴充套件它 來幫助 Wikibooks。 |
從網頁應用傳送電子郵件有很多理由,例如,接收使用者反饋或網頁應用的使用資料。不幸的是,JavaScript 不直接支援傳送電子郵件。
一種解決方案是使用 PHP 指令碼(在支援 PHP 的 Web 伺服器上),並讓該 PHP 指令碼傳送電子郵件,因為 PHP 支援傳送電子郵件。在這種情況下,網頁應用所要做的就是將資料傳送到 PHP 指令碼。
這是一個簡單的 PHP 指令碼示例,它將電子郵件傳送到硬編碼的電子郵件地址,並帶有硬編碼的主題行。該指令碼將已“釋出”到它的原始資料(以純文字格式)放入電子郵件正文
<?php
if (isset($HTTP_RAW_POST_DATA)) {
mail("my.email@example.com",
"my subject",
filter_var($HTTP_RAW_POST_DATA, FILTER_SANITIZE_STRING),
"From: my.email@example.com\n");
}
?>
當然,您應該用您的電子郵件地址替換電子郵件地址,以接收電子郵件。請注意,此電子郵件地址將是公開可見的;因此,您應該使用您願意在發生濫用時放棄的電子郵件地址。
PHP 指令碼的名稱應具有副檔名“.php”,以便 Web 伺服器可以將其識別為 PHP 指令碼。如果您無法訪問支援 PHP 的 Web 伺服器,您可能認識願意託管您的指令碼的人(冒著它會顯著增加網路流量的風險)。
該指令碼本身檢查是否有任何原始資料(以純文字格式)被髮布到它(有關如何在 JavaScript 中執行此操作,請參見下文)。如果是,它會發送包含已消毒的原始資料的電子郵件。消毒是必要的,以防止他人濫用該指令碼。原始資料的最大大小取決於 Web 伺服器的配置;通常它超過兆位元組。
在網頁應用的 JavaScript 程式碼中,您可以透過 PHP 指令碼傳送一些資料(這裡是字串 "my\r\ndata\r\n")(這裡假設它位於 "http://example.com/url/of/php/script/emailme.php")
var httpRequest = new XMLHttpRequest();
httpRequest.open("post", "http://example.com/url/of/php/script/emailme.php", true);
httpRequest.setRequestHeader("Content-Type", "text/plain");
httpRequest.send("my\r\ndata\r\n");
當然,您應該將 PHP 指令碼的 URL 替換為指令碼所在的位置,您應該將傳送的資料替換為您要傳送的任何字串。(請注意推薦使用回車符和換行符的換行符:"\r\n"。)
有關在 JavaScript 中使用 XMLHttpRequest 的不同方法的更多資訊,請參閱 Mozilla 開發者網路中的 使用 XMLHttpRequest。