2016-03-02 314 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

相關問題