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

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

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

тема: undefined
тело темы :

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

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

Тема: XXXXX

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

Ответов (5)

Решение

То, что мы использовали в проекте, - это всплывающее окно, которое открывает ссылку 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:, чтобы запустить открытие почтового клиента, зарегистрированного пользователями. Здесь есть очевидные подводные камни, о которых вы упомянули, и он менее гибкий. Однако для этого нужно меньше работы.

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

  var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body";  
  var mlink = document.createElement('a');
  mlink.setAttribute('href', mail);
  mlink.click();

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

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

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