-2

每次加载页面时,我都需要(静默)发送一封电子邮件。我尝试了以下代码:

<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

4

5 回答 5

2

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

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

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

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

于 2013-05-01T06:47:02.373 回答
2

我建议你让服务器来做这件事,比如PHP 邮件,而不是让 JS 来做。您可以在页面加载时向服务器发送请求,以告诉服务器向您的目标发送电子邮件。那样:

  • 您的页面上没有凌乱、令人毛骨悚然的脚本。
  • 他们永远不会知道实际发送了一封电子邮件。
  • “开火即忘”。将请求发送到服务器,完成!服务器完成其余的工作。
  • 您的电子邮件地址,只写在服务器上,隐藏在服务器端,避免电子邮件收割者和随后的垃圾邮件。

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

于 2013-05-01T06:47:37.577 回答
1

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

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

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

于 2013-05-01T06:50:13.000 回答
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>
于 2013-05-01T06:49:14.967 回答
0

结帐:

http://jsfiddle.net/4gGFR/

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

于 2013-05-01T06:51:28.517 回答