"Mailto:" 不发送电子邮件

"Mailto:" doesn't send email

我写了这个简单的代码:

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

支票没问题,就是发不了邮件,有人知道为什么吗?谢谢!

在函数完成 运行 之前,浏览器不会导航到新的 URL,此时您已经用 mailto: URL 覆盖了 URL HTTP URL.

删除最后一行。

好的,首先您不能在(浏览器)javascript 中发送电子邮件。您将需要服务器端代码来执行此操作。

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

如果这就是您要找的(网站访问者实际上是手动发送电子邮件,不是您),您可以打开一个mailto: link 的弹出窗口而不是使用 window.hrefwindow.open("mailto:[…]")

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

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

节点邮件程序(Node.js):https://nodemailer.com/