Вопрос по React формам

Как отправить форму созданную в React отправить на почту?


Ответы (1 шт):

Автор решения: S.H.

У Вас возникает некоторое смешение понятий.

Есть "клиент" - это код, который работает в браузере. А загружается при этом с сервера, если мы вообще говорим про "сайт" (иначе, зачем нам реакт - форма?)

По логике того, как ОБЫЧНО проиходит отправка на почту, это делает СЕРВЕР.

То есть, Ваша реакт - форма должна как то передать введенные данные на сервер, сервер их "переварит" и отправит на почту, или запишет в базу данных, или опубликует в твиттере. Возможно, все это одновременно.

Но без передачи данных на сервер - у вас есть только браузер. И браузер может своими "джаваскриптовыми щупальцами" взаимодействовать только с тем сервером, с которого загружена страница, потому что Same-origin_policy.

Так что - нужна серверная часть.

К счастью, это не приговор. Серверных частей, которые умеют поймать submit формы и отправить содержимое на почту - сколько угодно, на любой вкус. Особой популяностью пользуется php.

Но можно найти на ноде или питончике.

В общем, вектор поиска у вас есть, попробуйте упростить задачу - сделать форму с одним полем, одной кнопкой, и без реакта. и отпраивть её на почту. Как только получится - можно усложнить задачу, и подключить настоящую рабочую форму, про которую и был вопрос.

К сожалению, есть еще одно препятствие. Я заранее про него предупрежу. Дело в том, что из за спамеров, не так просто найти почтовый сервер, через который можно посылать письма. Как правило, если Ваш сайт находится на каком то хостинге - это не проблема. В этом случае всю "черную работу" по выковыриванию своих почтовых серверов из черных списков "злостных спамеров" берет на себя тот провайдер, который предоставляет Вам услугу хостинга. Но если ссервер тестовый и находится у Вас дома - то могут быть трудности.

И еще одно дополнение.

Я немного подумал, и решил не быть столь категоричным.

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

Успехов вам!

→ Ссылка