2013-04-26 73 views
1

我創建了HTML表單當提交點擊按鈕onclick事件調用下面的功能:我可以使用僅使用Javascript發送電子郵件,而無需點擊電子郵件客戶端上的發送按鈕嗎?

function ProcessSubmition(){ 

    var stringEmailBody=BuildEmailBody(); 

    var stringTo=document.getElementById("SubmittersEmail").value; 

    var stringSubject = "My Subject Text"; 

    window.location.href = "mailto:"+stringTo+"?subject="+stringSubject+"&body="+stringEmailBody; 

} 

有兩個要求到我的項目:

  1. 沒有PHP被允許在我們的服務器上。
  2. 填寫表格的人員不得編輯包含計算價格的數據。

問題:

當功能啓動後,出現並顯示由功能構造的消息中的郵件客戶端窗口,並且用戶必須單擊郵件客戶端窗口中的「發送」按鈕。
不幸的是,在用戶點擊發送之前,他們可以簡單地將計算的價格更改爲較低的美元金額,這顯然是不可接受的。

有什麼辦法隱藏郵件客戶端窗口並自動發送?或者還有其他方法可以用來解決問題嗎?

謝謝你給我的任何幫助。

+4

不需要。您需要某種服務器。 – SLaks 2013-04-26 13:29:36

+0

考慮到你的限制,你真正想要做的就是讓JavaScript調用發送郵件的服務器上的Web服務。被警告 - 如果服務使用來自服務的呼叫的數據,那麼如果他們想破解你的系統,就沒有辦法阻止用戶改變數據。 – Hogan 2013-04-26 13:31:15

+1

你不能把可信內容放在客戶端;有多種方式可以操縱這些信息。 – Joe 2013-04-26 13:31:22

回答

1

簡短的回答:沒有

在瀏覽器的上下文中運行的JavaScript代碼是客戶端代碼可以由最終用戶進行操作。出於這個原因,您絕不應該依賴客戶端代碼來執行任何敏感操作。

基本上,您需要一些服務器端支持來完成您所要達到的目標,否則它將永遠不會安全。現在,如果用戶可能篡改您的代碼對您來說很危險,那麼如果您的代碼可以執行任務,例如以他們的名義發送電子郵件而沒有任何形式的批准,那麼這對他們也是危險的。

即使像你這樣問,你可以直接跟我們的郵件客戶端,使電子郵件自動發送,沒有什麼會阻止從編輯生成消息JavaScript源用戶並更改消息內容。

替代方案?如果您永遠無法使用任何服務器端技術,也許您可​​以通過電子郵件發送表單詳細信息,然後在另一個流程中進行定價計算。

+0

謝謝大家的幫助。 – user2323920 2013-04-26 14:58:07

+0

@ user2323920,很高興能幫到你!您應該將此答案標記爲已接受。 – plalx 2013-04-26 15:10:29