在加载页面时静默发送电子邮件

时间:2013-05-01 06:41:49

标签: javascript html

每次加载页面时我都需要发送一封电子邮件(默默地)。 我试过下面的代码:

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

var email = "h.kamrava@yahoo.com" 
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

5 个答案:

答案 0 :(得分:2)

我认为你不能通过表格,特别是邮寄表格来做同样的事情。在任何一种情况下,您所做的都不会保持沉默,因为它要求用户发送该电子邮件。 mailto:简单地向用户呈现使用他们自己的客户端发送电子邮件的方式。

如果您想从HTML文档中快速发送电子邮件,请使用mailto:from a anchor,然后等待用户点击它或强制它点击。

<a href="mailto:hello@world.com">My link</a>

如果你可以使用PHP或其他一些服务器端语言,它会更容易和“沉默”。查看PHP的mail()功能,它允许您向任何人发送电子邮件。

答案 1 :(得分:2)

我建议你让服务器执行此操作,例如PHP mail,而不是让JS执行此操作。您可以在页面加载时向服务器发送请求,以告知服务器向目标发送电子邮件。那样:

  • 页面上没有杂乱,令人毛骨悚然的脚本。
  • 他们永远不会知道实际发送了一封电子邮件。
  • “火与忘记”。将请求发送到服务器,完成了!服务器完成剩下的工作。
  • 您的电子邮件地址仅在服务器上写入,隐藏在服务器端,避免收发电子邮件,以及随后的垃圾邮件。

触发它的请求可以是任何东西,比如加载1x1 gif,脚本,AJAX或其他任何内容。

答案 2 :(得分:1)

你需要为此目的使用ajax。 例如,您可以使用JQuery ajax,如下所示:

$(document).load('ajax/mail.php?email=exp@mail.com&subject=test&body=hi')

然后在php页面中使用mail()函数发送它

答案 3 :(得分:0)

编辑:看一下表单代码,我可以看到这实际上不会发送电子邮件......但这就是你使用javascript提交表单的方式。如果您想以静默方式发送电子邮件,则需要发布到某些后端服务。

尝试将所有内容放入加载处理程序:

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

function sendEmail(){
    var email = "h.kamrava@yahoo.com" 
    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>

答案 4 :(得分:0)

结帐:

http://jsfiddle.net/4gGFR/

而不是调用表单帖子,调用<body onload="sendemail();">