Задача. На хостинге есть одностраничный сайт с контактной формой обратной связи. Просто отправить данные формы из HTML-страницы на почту нельзя, нужно настраивать обработку и отправку на сервере (обычно через php). Это требует некоторых навыков, а так же могут быть сложности на самом хостинге.
Решение. В данном случае, для отправки формы с сайта можно использовать бесплатное, стороннее решение через API — web3forms.com:
- Перейти на https://web3forms.com.
- Создать ключ доступа «Create Access Key», указав почту на которую должны будут приходить письма из формы.
- На почту придет ключ «Public Access Key», вроде
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Форме задаем параметры
action="https://api.web3forms.com/submit" method="POST"
- Как в Коде №1 создаем скрытое поле с access_key и указываем в нем ключ из письма.
- Остальные дополнения можно увидеть из кода формы: поле для спам-ботов, редирект после отправки, дополнительные поля.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<form id="subscribeForm" action="https://api.web3forms.com/submit" method="POST"> <!-- Заменить value на код из письма --> <input type="hidden" name="access_key" value="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> <!-- Honeypot Spam Protection --> <input type="checkbox" name="botcheck" class="hidden" style="display: none;"> <!-- Пользовательская страница успешной отправки / Success Page --> <!-- <input type="hidden" name="redirect" value="https://mywebsite.com/thanks.html"> --> <!-- Дополнительное скрытое поле с данными --> <!-- <input type="text" id="theme" name="тема письма" value="Подписка на сайте mysite.com" class="hidden" style="display: none;"> --> <input type="email" id="email" class="input input-email" name="email" placeholder="Ваш E-mail" required> <input type="checkbox" id="consent" name="consent" required> <label for="consent">Даю согласие на получение рекламных, информационных и специальных предложений на указанный адрес электронной почты</label> <button type="submit">Подписаться</button> </form> |