2016-03-02 6 views
0

я написал простой код:«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:[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-адресу до тех пор, пока функция не завершится, к тому времени, когда это произойдет, вы перезаписали URL-адрес mailto: с URL-адресом HTTP.

Удалить последнюю строку.

+0

Я собирался спросить, если это был симптом он видел ... :) На самом деле – CodingGorilla

+0

, это была проблема! Как я могу перейти к этому URL-адресу после отправки электронной почты? –

+0

Вы не можете. Что делать, если пользователь является пользователем GMail? Они отправятся на другой сайт. Если вы хотите иметь какой-либо контроль над отправкой электронной почты, так что это серверная сторона от ваших собственных систем. – Quentin