Автор оригинала: Andriy Zapisotskyi.
Руководство о Отправка электронных писем с JavaScript впервые появился на блоге MailTrap.
JavaScript – это язык программирования, который вы можете использовать как для интерфейса, так и для задней разработки. Когда имя JavaScript используется в контексте отправки электронных писем, Node.js – это первое, что приходит на ум. Мы даже обманывали, как отправлять электронные письма с Node.js. В этой статье мы хотим изменить перспективу с стороны сервера на сторону клиента. Давайте выясним, как вы можете использовать JS для отправки электронных писем из приложения, у которого нет заднего конца.
FAQ: Могу ли я отправить электронные письма с JS или нет?
Вы не можете отправлять электронные письма, использующие только код JavaScript из-за отсутствия поддержки серверных розеток. Для этого вам нужен язык сервера, который разговаривает с SMTP-сервером. Вы можете использовать JS в сочетании с скриптом сервера, который отправит электронные письма из браузера на основе ваших запросов. Это значение, которое мы собираемся представить ниже.
Почему вы можете отправить электронные письма с JS
Традиционно серверная сторона обычного приложения отвечает за отправку электронных писем. Вам нужно будет настроить сервер, используя задневские технологии. Клиентская сторона отправляет запрос на сторону сервера, что создает электронное письмо и отправляет его на SMTP-сервер. Если вам интересно, что произойдет с электронной почтой после этого, прочитайте наш блог, SMTP RELAY Отказ
Итак, почему кто-нибудь готов пойти еще один путь и отправлять электронные письма прямо на стороне клиента с помощью JavaScript? Такой подход довольно полезен для формирования контактных форм или других видов пользовательских взаимодействий в веб-приложениях, что позволяет вашему приложению отправлять электронную почту без обновления страницы, с которой пользователь взаимодействует. Кроме того, вам не нужно беспокоить с кодированием сервера. Это сильный аргумент, если ваше веб-приложение использует отправку электронной почты только для контактных форм. Ниже вы найдете несколько вариантов о том, как сделать ваше приложение отправлять электронные письма с сторон клиента.
mailto: для отправки данных форм
Поскольку вы не можете отправить электронное письмо напрямую с JS, вы можете сообщить браузеру открывать почтовый клиент по умолчанию для этого. Технически, Mailto:
Способ не отправляет электронное письмо напрямую из браузера, но это может сделать работу. Проверьте, как работает следующий код:
Когда вы запускаете его в браузере, вы увидите следующее:
Как только данные будут отправлены, браузер открывает почтовый клиент по умолчанию. В нашем случае это Gmail.
Mailto:
Метод – это довольно простое решение для реализации, но у него есть некоторые конкретные недостатки:
- Вы не можете управлять макетом данных, поскольку данные представлены в форме, отправленной браузером.
Mailto:
Не защищает ваш адрес электронной почты от уборки спам-богоматов. Некоторое время назад это может быть смягчено, построив ссылку в JS. В наши дни все больше и больше ботов запускают JS и не полагаются на HTML, представленные в одиночку.
Smtpjs.com – True Email Отправка из JavaScript
SMTPJS Это бесплатная библиотека, которую вы можете использовать для отправки электронных писем из JavaScript. Все, что вам нужно, это SMTP-сервер и несколько манипуляций, чтобы сделать все сделано. Мы будем использовать Mailtrap.io Как сервер, потому что это действенное решение для тестирования электронной почты. Ниже приведен поток, который вы должны следовать:
Создайте HTML-файл (например, test.html) со следующим сценарием:
Создайте кнопку, которая заставит функцию JavaScript
Напишите функцию JS, чтобы отправить электронные письма через SMTPJS.com.
Email.send({ Host : "smtp.mailtrap.io", Username : "", Password : " ", To : 'recipient@example.com', From : "sender@example.com", Subject : "Test email", Body : " Header
Bold text
Italic" }).then( message => alert(message) ); }
- Запустите Test.html в браузере и отправьте свой адрес электронной почты
Недостатный образец с образцом кода выше состоит в том, что ваше имя пользователя и пароль видны в сценарии клиента. Это может быть исправлено, если вы используете опцию шифрования, предоставленные SMTPJS. Нажмите кнопку Encrypt своих учетных данных SMTP и заполните необходимые поля.
После этого нажмите Generate Token Security и используйте его, затем в функции JS вместо настроек SMTP-сервера, как следующее: Securetoken: «<ваш генерированный токен>»