2013-05-01 77 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页面使用电子邮件()函数来发送