отправка электронной почты из html с использованием javascript без Outlook по умолчанию

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я хочу отправить электронное письмо с помощью javascript без использования Outlook. Я не хочу использовать объект mailto, который использует Outlook для отправки электронной почты.

Существует ли какой-либо прямой метод, предоставляемый JavaScript для отправки данных, представленных в форме, на адрес электронной почты.

Комментарии:

1. «mailto» не использует Outlook, он использует ту почтовую программу, которая используется пользователем по умолчанию (которая, ОК, может быть Outlook).

2. Вам нужно что-то на серверной части для обработки отправки фактической почты, которая будет зависеть от того, на каком сайте находится: php, asp.net , и т.д.

Ответ №1:

Вроде того. По крайней мере, у вас есть возможность выполнить следующее:

С помощью JavaScript вы можете вызвать серверную службу, которая может отправлять электронную почту через SMTP.Выполняется ли этот вызов с помощью простой отправки формы на ваш собственный сервер или через XmlHttpRequest удаленную службу, зависит только от а) будете ли вы реализовывать его самостоятельно и б) сможете ли вы найти службу в другом месте.

tl; dr:

  • Сам JavaScript не может отправлять электронные письма
  • Однако вы можете заставить JavaScript вызывать службу, которая способна «разговаривать» с SMTP.

Ответ №2:

Это будет некоторая работа, но я думаю, что с Websockets вами это сработает.

Затем вам нужно будет самостоятельно реализовать протокол SMTP:

http://www.smtp2go.com/articles/smtp-protocol.html

Вот руководство по websockets:

http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

Возможно, вы захотите ознакомиться со спецификацией websockets для получения более подробной информации:

http://dev.w3.org/html5/websockets/#the-websocket-interface

Итак, теоретически вы должны быть в состоянии это сделать, но в соответствии со спецификацией SMTP обычно блокируется из Websockets:

Если порт — это порт, к которому пользовательский агент настроен на блокировку доступа, затем создайте исключение SecurityError. (Пользовательские агенты обычно блокируют доступ к известным портам, таким как SMTP.)

Но это обычно блокируется, не всегда или требуется, поэтому это может сработать, и это единственный способ, которым я вижу, чтобы javascript отправлял электронные письма.

Ответ №3:

Нет.

Такая функция может представлять угрозу безопасности, поскольку ею могут легко злоупотреблять спамеры. Чтобы напрямую отправить электронное письмо, не открывая экземпляр почтового клиента пользователя по умолчанию, вы должны передать данные на сервер, который отправит электронное письмо.

Ответ №4:

Я думаю, вам следует написать серверную программу, которая принимает адрес электронной почты и содержимое электронной почты, а затем отправляет электронное письмо. Затем вы можете отправить форму на серверную часть с помощью Ajax в браузере.

Ответ №5:

Я действительно надеюсь, что нет способа сделать это с помощью клиентского кода, потому что я действительно не хочу, чтобы какая-то случайная веб-страница использовала мой компьютер для отправки электронных писем без моего ведома.

И, сказав это, я уверен, что ответ «нет» в любом случае.

Весь смысл «mailto» заключается в том, что он открывает почтовую программу пользователя по умолчанию (не обязательно Outlook), чтобы они знали, что отправляют электронное письмо, и могут редактировать все поля, прежде чем продолжить (при условии, что они вообще хотят продолжить).

Самое близкое, что я могу придумать, — это чтобы ваш JavaScript вызывал Ajax на ваш веб-сервер, а затем отправлял электронное письмо из вашего серверного кода.

Ответ №6:

Открываемая почтовая программа зависит от значения по умолчанию, установленного на отдельном клиентском компьютере.

Чтобы отправить электронное письмо, не касаясь почтовой программы, такой как Outlook, Thunderbird и т. Д., Вам Нужно использовать какой-то серверный язык, такой как PHP, и это очень легко сделать, и есть много ресурсов, чтобы вы могли достичь того, чего хотите.

Ответ №7:

НЕТ! JavaScript не может отправить форму по электронной почте! но есть альтернативы для отправки данных формы на адрес электронной почты.

JavaScript не предоставляет прямого метода для отправки данных, представленных в форме, на адрес электронной почты.

Основная проблема, связанная с отсутствием функции «Форма электронной почты JavaScript», — это безопасность. Предположим, что в JavaScript есть функция для отправки электронной почты. Некоторые злонамеренные программисты могут написать скрипт для отправки электронной почты на определенный адрес сразу при посещении их страницы. Это откроет ваш адрес электронной почты какой-либо третьей стороне без вашего ведома. Они начнут заполнять ваш почтовый ящик множеством спам-сообщений!

Комментарии:

1. @nnnnnn — Они уже могут это сделать и делают это, поэтому любые проблемы со спамом немного запоздали.