2008-08-11 126 views
13

我想創建一個客戶端郵件創建者網頁。我知道在html表單中使用mailto操作的問題(不是標準的,在客戶端上沒有默認的郵件應用)。但是網頁並不是非常重要,他們並不在乎。我可以使用JavaScript創建客戶端電子郵件嗎?

通過的mailto動作創建的郵件具有語法:

受試者:受試者未定義
體:

參數1 = VALUE1
param2的=值2



paramn = valuen

我可以用JavaScript來格式化郵件嗎?

主題:XXXXX

身體: 值1;值2;值3 ...值N

回答

15

我們在projet中使用的是一個打開mailto:鏈接的彈出窗口,它是我們發現在默認郵件客戶端中編寫郵件的唯一方式,該郵件客戶端適用於所有郵件客戶端(至少我們所有的客戶端)。

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ; 
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks 
var subject = ""//between the speech marks goes the subject of the message 
var href = "mailto:" + addresses + "?" 
     + "subject=" + subject + "&" 
     + "body=" + body; 
var wndMail; 
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10"); 
if(wndMail) 
{ 
    wndMail.close();  
} 
+0

似乎無法在IE 8中工作。根據調試器,wndMail爲空。 – 2009-11-03 16:41:36

+0

很抱歉聽到這個消息。它來自使用IE6的舊項目。隨意編輯以提高:) – 2009-11-03 17:11:37

0

是否有一個原因,你不能只將數據發送到處理髮送頁面郵件?在大多數語言中發送電子郵件非常容易,所以除非有很強的理由將其推送到客戶端,否則我會推薦該路由。

6

你或多或少通過瀏覽器在發送郵件時只有兩種選擇..

  1. 做一個網頁,需要用戶輸入,並允許他們通過你的Web服務器來發送郵件。這需要某種服務器端腳本。
  2. 使用mailto:鏈接觸發用戶註冊郵件客戶端的打開。這有你提到的明顯的缺陷,並且不夠靈活。儘管如此,它需要更少的工作
4

只有javascript,它的不可能
JavaScript並不打算做這樣的事情,並且它可以與除了它所在的網頁瀏覽器之外的其他任何東西進行交互的方式嚴重癱瘓(出於正當理由!)。

想一想:一個垃圾郵件發送者寫一個客戶端JavaScript的網站,它會自動郵寄到數以千計的隨機電子郵件地址。如果人們應該去那個網站,他們都將參與一個分佈式羣發郵件騙局,用他們自己的電腦......無需感染或用戶交互!

+3

但這個mailto動作不發送郵件,只是調用客戶端的默認電子郵件應用程序和創建新的郵件,但沒有發送。因此,這樣的惡意軟件站點無法在用戶協作的情況下發送垃圾郵件。我只想JavaScript來格式化消息的正文,而不是發送它,但查看答案這是不可能的。 – Telcontar 2008-08-11 09:45:58

1

您可以創建一個mailto鏈接,並使用JavaScript火了:

var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body"; 
    var mlink = document.createElement('a'); 
    mlink.setAttribute('href', mail); 
    mlink.click(); 
相關問題