“Mailto:”不发送电子邮件

时间:2016-03-02 14:30:34

标签: javascript mailto

我写了这个简单的代码:

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";

检查没问题,但它没有发送电子邮件,有人知道为什么吗?谢谢!

2 个答案:

答案 0 :(得分:2)

在功能运行完毕之前,浏览器无法导航到新网址,直到您使用HTTP网址覆盖mailto:网址时为止。

删除最后一行。

答案 1 :(得分:1)

好的,首先你不能在(浏览器)javascript中发送电子邮件。您将需要服务器端代码才能这样做。

最多,执行location.href = "mailto:[…]";会打开访问者的默认邮件应用程序,其中部分内容已预先填写,但访问者仍需要点击发送按钮。电子邮件的发件人将是访问者,而不是您/您的网站。

如果您正在寻找(网站访问者实际手动发送电子邮件,不是您),您可以打开mailto:的弹出窗口链接而不是使用window.hrefwindow.open("mailto:[…]")

否则,您需要一个服务器端语言(PHP,Node.js等),其中包含发送电子邮件的代码并添加ajax请求,告知您的服务器在您当前的JS脚本中执行此操作。

你应该寻找PHPMailer(PHP):https://github.com/PHPMailer/PHPMailer

Nodemailer(Node.js):https://nodemailer.com/