2016-03-02 267 views
0

我写了这个简单的代码:“电子邮件地址:”不发送电子邮件

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:[email protected]" + email + '?subject=' + subject + '&body=' + body[0] + body[1]; 
location.href = "../index.html"; 

的检查是好的,但它不发送电子邮件,有人知道这是为什么?谢谢!

回答

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/

+0

是的,我知道,谢谢你的回复!请阅读我的其他评论! –

+0

请阅读我的答案在其整体,我给你的伎俩既打开电子邮件页面,并重定向访问者:) – chadrien

+0

OPS对不起,我错过了那部分! :) –

2

在功能运行完成之前,浏览器将不会导航到新的URL,到时您会用HTTP URL覆盖mailto: URL。

删除最后一行。

+0

我要问,如果这是他看到的症状... :) – CodingGorilla

+0

其实,那是问题!一旦电子邮件被发送,我如何才能移动到该URL? –

+0

你不能。如果用户是GMail用户呢?他们会去另一个网站。如果你想对电子邮件发送有任何控制,所以它在服务器端来自你自己的系统。 – Quentin

相关问题