我写了这个简单的代码:
var email;
do {
email = prompt('Inserisci il tuo indirizzo eMail');
if ((email.indexOf("@") == (-1)) || (email == "") || (email == undefined)) {
alert("Inserisci un indirizzo mail valido");
}
}
while ((email.indexOf("@") == (-1)) || (email == "") || (email == undefined));
var subject = ('My Armchair');
var body = new Array();
body[0] = sessionStorage.getItem('imuno');
body[1] = sessionStorage.getItem('imdue');
location.href = "mailto:babini.francesco@queensrl.net" + email + '?subject=' + subject + '&body=' + body[0] + body[1];
location.href = "../index.html";
检查没问题,但它没有发送电子邮件,有人知道为什么吗?谢谢!
答案 0 :(得分:2)
在功能运行完毕之前,浏览器无法导航到新网址,直到您使用HTTP网址覆盖mailto:
网址时为止。
删除最后一行。
答案 1 :(得分:1)
好的,首先你不能在(浏览器)javascript中发送电子邮件。您将需要服务器端代码才能这样做。
最多,执行location.href = "mailto:[…]";
会打开访问者的默认邮件应用程序,其中部分内容已预先填写,但访问者仍需要点击发送按钮。电子邮件的发件人将是访问者,而不是您/您的网站。
如果您正在寻找(网站访问者实际手动发送电子邮件,不是您),您可以打开mailto:
的弹出窗口链接而不是使用window.href
:window.open("mailto:[…]")
否则,您需要一个服务器端语言(PHP,Node.js等),其中包含发送电子邮件的代码并添加ajax请求,告知您的服务器在您当前的JS脚本中执行此操作。
你应该寻找PHPMailer(PHP):https://github.com/PHPMailer/PHPMailer
或
Nodemailer(Node.js):https://nodemailer.com/