Могу ли я использовать JavaScript для создания клиентской электронной почты? - PullRequest
13 голосов
/ 11 августа 2008

Я хочу создать веб-страницу создания почты на стороне клиента. Я знаю проблемы использования действия mailto в html-форме (нестандартно, на клиенте не установлено почтовое приложение по умолчанию) Но веб-страница не очень важна, и им это безразлично.

Почта, созданная действием mailto, имеет синтаксис:

тема: неопределенная тема
Тело:

param1 = value1
param2 = значение2
.
.
.
paramn = valuen

Можно ли использовать JavaScript для форматирования почты следующим образом?

Тема: XXXXX

Body: Значение1; значение2; ... Value3 ValueN

Ответы [ 5 ]

15 голосов
/ 11 августа 2008

То, что мы использовали в проекте, - это всплывающее окно, которое открывает ссылку mailto: это единственный найденный нами способ создания почты в почтовом клиенте по умолчанию, который работает со всеми почтовыми клиентами (по крайней мере, всеми нашими клиентами) .

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
var subject = ""//between the speech marks goes the subject of the message
var href = "mailto:" + addresses + "?"
         + "subject=" + subject + "&"
         + "body=" + body;
var wndMail;
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
if(wndMail)
{
    wndMail.close();    
}
6 голосов
/ 11 августа 2008

У вас более или менее есть только две альтернативы при отправке почты через браузер.

  1. создать страницу, которая принимает данные пользователя и позволяет им отправлять почту через ваш веб-сервер. Для этого вам нужен какой-нибудь сценарий на стороне сервера.
  2. использовать ссылку mailto: для запуска открытия зарегистрированного почтового клиента. Это имеет очевидные подводные камни, о которых вы упомянули, и менее гибко. Это требует меньше работы, хотя.
4 голосов
/ 11 августа 2008

С одним только javascript это невозможно .
Javascript не предназначен для таких вещей и серьезно ограничен в способе взаимодействия с чем-либо, кроме веб-браузера, в котором он живет (по уважительной причине!).

Подумайте об этом: спамер пишет веб-сайт с клиентским javascript, который автоматически рассылает тысячи случайных адресов электронной почты. Если люди пойдут на этот сайт, то все они будут участвовать в рассылке мошеннических рассылок со своим собственным компьютером ... заражение или взаимодействие с пользователем не требуется!

1 голос
/ 30 января 2015

Вы можете создать mailto-ссылку и запустить ее, используя javascript:

  var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";  
  var mlink = document.createElement('a');
  mlink.setAttribute('href', mail);
  mlink.click();
0 голосов
/ 11 августа 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...