2013-05-01 82 views
-2

每次加載頁面時我都需要發送電子郵件(靜默)。 我嘗試了下面的代碼:當頁面加載時發送悄悄電子郵件

<html> 
<head> 
<script language="javascript" type="text/javascript"> 

var email = "[email protected]" 
var subject = "test" 
var body = "Hello world" 

document.write("<form name="form" action=\"mailto:"+ email +"\?subject="+ subject +"\&body="+ body +"\" method=\"post\" enctype=\"text/plain\"></form>") 
</script> 
</head> 
<body onload="document.form.submit()"> 
</body> 
</html> 

這對我不起作用!我究竟做錯了什麼? tnx

+0

JavaScript不能發送郵件。服務器端可以,這是更好的,因爲用戶不能看到電子郵件的內容(除非他們是收件人)。看到這裏http://www.w3schools.com/php/php_mail.asp – Mattios550 2013-05-01 06:50:12

回答

2

我建議你讓服務器做到這一點,如PHP mail,而不是讓JS做到這一點。您可以在加載頁面時向服務器發送請求,以通知服務器向目標發送電子郵件。這樣:

  • 沒有凌亂,看起來令人毛骨悚然的腳本在您的網頁上。
  • 他們永遠不會知道電子郵件實際上已發送。
  • 「火和忘記」。將請求發送到服務器,完成!服務器完成剩下的工作。
  • 您的電子郵件地址只寫在服務器上,隱藏在服務器端,避免電子郵件收集器和垃圾郵件。

觸發它的請求可能是任何東西,比如加載1x1 gif,腳本,AJAX或其他。

2

我不認爲你可以通過表格做同樣的事情,特別是一個帖子表格。在任何情況下,您所做的都不會保持沉默,因爲它要求用戶發送該電子郵件。 mailto:簡單地向用戶展示使用他們自己的客戶端發送電子郵件的方式。

如果您想要從HTML文檔中快速發送電子郵件,請使用mailto:從錨內,然後等待用戶單擊它或強制它單擊。

<a href="mailto:[email protected]">My link</a> 

如果您可以使用PHP或其他服務器端語言,它會更容易和「無聲」。查看PHP的mail()函數,該函數允許您向任何人發送電子郵件。

0

編輯:看着窗體代碼,我可以看到,這實際上不會發送電子郵件......但這將是如何使用JavaScript提交表單。如果您想默默發送電子郵件,則需要發佈到一些後端服務。

嘗試把一切都變成負載處理程序:

<html> 
<head> 
<script language="javascript" type="text/javascript"> 

function sendEmail(){ 
    var email = "[email protected]" 
    var subject = "test" 
    var body = "Hello world" 

    document.write("<form name="form" action=\"mailto:"+ email +"\?subject="+ subject +"\&body="+ body +"\" method=\"post\" enctype=\"text/plain\"></form>"); 
    document.form.submit(); 
} 
</script> 
</head> 
<body onload="sendEmail()"> 
</body> 
</html> 
1

你需要使用AJAX用於此目的。 例如,你可以使用jQuery AJAX,這樣的事情:

$(document).load('ajax/[email protected]&subject=test&body=hi') 

,然後在PHP頁面使用電子郵件()函數來發送