跳轉到內容

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


< Canvas 2D 網頁應用

除非另有說明,否則此頁面上的所有示例原始碼均授予公共領域。
華夏公益教科書