Могу ли я использовать JavaScript для создания электронного письма на стороне клиента?

StackOverflow https://stackoverflow.com/questions/7592

  •  08-06-2019
  •  | 
  •  

Вопрос

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

Сообщение, созданное действием mailto, имеет следующий синтаксис:

предмет:неопределенный предмет
тело:

параметр1=значение1
параметр2=значение2
.
.
.
параметр=значение

Могу ли я использовать JavaScript для такого форматирования письма?

Тема:ХХХХХ

Тело:Значение1;Значение2;Значение3...ЗначениеN

Это было полезно?

Решение

В проекте мы использовали всплывающее окно, открывающее 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();    
}

Другие советы

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

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

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

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

Вы можете создать ссылку 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();

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top