Я хочу, чтобы на моем сайте была возможность отправлять электронные письма без обновления страницы. Поэтому я хочу использовать Javascript.
<form action="javascript:sendMail();" name="pmForm" id="pmForm" method="post">
Enter Friend's Email:
<input name="pmSubject" id="pmSubject" type="text" maxlength="64" style="width:98%;" />
<input name="pmSubmit" type="submit" value="Invite" />
Вот как я хочу вызвать функцию, но я не уверен, что поместить в функцию javascript. Из проведенного мною исследования я нашел пример, в котором используется метод mailto, но, насколько я понимаю, на самом деле он не отправляется напрямую с сайта.
Поэтому мой вопрос: где я могу найти, что поместить в функцию JavaScript, чтобы отправить электронное письмо прямо с сайта?
function sendMail() {
/* ...code here... */
}
javascript
email
user906357
источник
источник
Ответы:
Вы не можете отправить электронное письмо напрямую с помощью JavaScript.
Однако вы можете открыть почтовый клиент пользователя:
Есть также некоторые параметры для предварительного заполнения предмета и тела:
Другим решением было бы сделать ajax-вызов на ваш сервер, чтобы сервер отправлял электронную почту. Будьте осторожны, чтобы никому не отправлять письма через ваш сервер.
источник
window.location.href
(как в этом ответе: stackoverflow.com/questions/271171/… ), чтобы открыть почтовый клиент, и он не оставляет это пустое окно, когда пользователь заканчивает работу с электронной почтой.subject
иbody
переменные или они фактический текст, который будет в полях?window.open( String( 'mailto:recipient^example.com' ).replace('^', '@') );
чтобы запутать спам-ботовПереадресация через ваш сервер - вызов стороннего API - безопасный и рекомендуемый
Ваш сервер может вызывать сторонний API после надлежащей аутентификации и авторизации. Ключи API не предоставляются клиенту.
node.js - https://www.npmjs.org/package/node-mandrill
а затем используйте $ .ajax на клиенте для вызова вашего почтового API.
Напрямую от клиента - вызов стороннего API - не рекомендуется
Отправить письмо, используя только JavaScript
Как это -
https://medium.com/design-startups/b53319616782
Примечание. Имейте в виду, что ваш ключ API виден любому пользователю, поэтому любой злоумышленник может использовать ваш ключ для отправки электронных писем, которые могут поглотить вашу квоту.
источник
Я не мог найти ответ, который действительно удовлетворил первоначальный вопрос.
Я собрал простой бесплатный сервис, который позволяет вам сделать стандартный HTTP-запрос POST для отправки электронной почты. Он называется PostMail , и вы можете просто опубликовать форму, использовать Javascript или jQuery. Когда вы регистрируетесь, он предоставляет вам код, который вы можете скопировать и вставить на свой сайт. Вот некоторые примеры:
Javascript:
JQuery:
Опять же, в полном раскрытии, я создал этот сервис, потому что я не мог найти подходящий ответ.
источник
Вы можете найти, что поместить в функцию JavaScript в этом посте.
Предоставьте свой собственный скрипт PHP (или любой другой язык) для отправки электронной почты.
источник
Я сообщаю вам новости. Вы НЕ МОЖЕТЕ отправить электронное письмо с JavaScript как таковым.Исходя из контекста вопроса ОП, мой ответ выше не соответствует действительности, на что указал @KennyEvitt в комментариях. Похоже, вы можете использовать JavaScript в качестве SMTP-клиента .
Тем не менее , я не стал копаться глубже, чтобы выяснить, достаточно ли он безопасен и кроссбраузерен. Так что я не могу ни поощрять, ни отговаривать вас использовать его. Используйте на свой риск.
источник
Я знаю, что слишком поздно, чтобы написать ответ на этот вопрос, но, тем не менее, я думаю, что он будет полезен всем, кто думает об отправке писем через javascript.
Первый способ, который я бы предложил, - это использовать обратный вызов для этого на сервере. Если вы действительно хотите, чтобы он обрабатывался с использованием javascript, я рекомендую следующее.
Самым простым способом, который я нашел, было использование smtpJs. Бесплатная библиотека, которую можно использовать для отправки писем.
1. Включите скрипт, как показано ниже
2. Вы можете отправить электронное письмо, как это
Что нежелательно, так как он будет отображать ваш пароль на стороне клиента. Таким образом, вы можете сделать следующее, зашифровав свои учетные данные SMTP и заблокировав их в одном домене, и вместо этого передайте безопасный токен вместо учетных данных.
Наконец, если у вас нет SMTP-сервера, вы используете службу SMTP-ретрансляции, такую как Elastic Email
Также здесь есть ссылка на официальный сайт SmtpJS.com, где вы можете найти все примеры, которые вам нужны, и место, где вы можете создать свой безопасный токен.
Я надеюсь, что кто-то найдет эти детали полезными. Удачного кодирования.
источник
Кажется, на горизонте новое решение. Это называется EmailJS . Они утверждают, что код сервера не требуется. Вы можете запросить приглашение.
Обновление август 2016: EmailJS, кажется, уже в живых. Вы можете отправлять до 200 электронных писем в месяц бесплатно, и он предлагает подписку на большие объемы.
источник
window.open ( 'электронной почты: test@example.com'); как указано выше, ничего не скрывает спам-боты от адреса электронной почты «test@example.com». Я привык постоянно сталкиваться с этой проблемой.
источник
Javascript на стороне клиента, вы не можете по электронной почте с Javascript. Браузер распознает, может быть, только
mailto:
и запускает почтовый клиент по умолчанию.источник
В вашей
sendMail()
функции добавьте ajax-вызов в ваш бэкэнд, где вы можете реализовать это на стороне сервера.источник
источник
JavaScript не может отправлять электронную почту из веб-браузера. Однако, отступая от решения, которое вы уже пытались внедрить, вы можете сделать что-то, что соответствует первоначальному требованию:
Вы можете использовать JavaScript для создания значений, которые понадобятся электронной почте, а затем сделать AJAX-запрос к ресурсу сервера, который фактически отправляет электронную почту. (Я не знаю, какие серверные языки / технологии вы используете, так что эта часть зависит от вас.)
Если вы не знакомы с AJAX, быстрый поиск в Google даст вам много информации. Как правило, вы можете быстро его запустить и запустить с помощью функции jQuery $ .ajax (). Вам просто нужно иметь страницу на сервере, которую можно вызвать в запросе.
источник
Кажется, что один «ответ» на это заключается в реализации SMPT-клиента. Смотрите email.js для библиотеки JavaScript с SMTP-клиентом.
Вот репозиторий GitHub для SMTP-клиента. Основываясь на README репо, кажется, что в зависимости от браузера клиента могут потребоваться различные прокладки или полифилы, но в целом это, безусловно, представляется возможным (если на самом деле значительно не выполнено), хотя это не так легко описать даже разумно длинный ответ здесь.
источник
Есть комбинированный сервис. Вы можете объединить перечисленные выше решения, такие как mandrill, с сервисом EmailJS, который может сделать систему более безопасной. Они еще не начали службу, хотя.
источник
Еще один способ отправки электронной почты из JavaScript, это использовать directtomx.com следующим образом;
Затем позвоните со своей страницы следующим образом;
источник
Я бы сделал это с библиотекой SMTPJ . Он предлагает шифрование ваших учетных данных, таких как имя пользователя, пароль и т. Д.
источник
На ваш вопрос нет однозначного ответа, так как мы не можем отправлять электронную почту только с использованием javascript, но есть способы использовать javascript для отправки нам электронных писем:
1) используя api для вызова API через javascript, чтобы отправить нам электронное письмо, например, https://www.emailjs.com говорит, что вы можете использовать такой код ниже для вызова их api после некоторой настройки:
2) создать бэкэнд-код для отправки вам электронного письма, вы можете использовать любой бэкэнд-фреймворк для вас.
3) используя что-то вроде:
который откроет ваше почтовое приложение, это может попасть в заблокированное всплывающее окно в вашем браузере.
В общем, отправка электронной почты - это задача сервера, поэтому ее следует выполнять на языках бэкэнда, но мы можем использовать javascript для сбора необходимых данных и отправки их на сервер или в API, также мы можем использовать приложение третьей четности и открывать их. через браузер, используя JavaScript, как указано выше.
источник
Короткий ответ: вы не можете сделать это, используя только JavaScript. Вам понадобится серверный обработчик для соединения с SMTP-сервером для фактической отправки почты. В Интернете есть много простых почтовых сценариев, таких как этот для PHP:
Используйте Ajax для отправки запроса в PHP-скрипт, убедитесь, что обязательные поля не пустые или неправильные, с помощью js также ведите учет почты, отправленной кем-либо с вашего сервера.
Проверьте наличие ошибок в письме из вашего скрипта и примите соответствующие меры.
Например, для его устранения, если почтовый адрес неверный или письмо не отправлено из-за проблем с сервером, или оно находится в очереди в таком состоянии, немедленно сообщите об этом пользователю и предотвратите многократную отправку одного и того же электронного письма снова и снова. Получите ответ от вашего скрипта, используя jQuery GET и POST
источник
Поскольку все это замечательная информация, есть небольшой API под названием Mandrill для отправки писем из javascript, и он работает отлично. Вы можете дать ему шанс. Вот небольшой учебник для начала.
источник
Отправьте электронное письмо, используя JavaScript или jQuery
источник
var objO = new ActiveXObject('Outlook.Application');