Ваша стратегия будет зависеть от того, хотите ли вы, чтобы форма вызывала электронную почту на стороне клиента, без какого-либо взаимодействия с сервером; или вы хотите, чтобы форма была отправлена на сервер, а затем чтобы сервер отправил электронное письмо.
Только на стороне клиента:
Ваша кнопка «Присоединиться» может вызвать функцию JavaScript, которая предотвращает отправку формы по умолчанию, вместо этого извлекает записи формы и генерирует комплексный mailto:
адрес:
function sendEmail() {
// Write some code that gets form entries
window.location.href = 'mailto:' + address + '?subject=' + ...;
}
(Есть множество веб-ресурсов для изучения сложных mailto:
адресов.) Это приведет к открытию предпочтительного почтового клиента пользователя и заполнит электронное письмо содержимым, которое вы указано. Пользователь нажимает «Отправить» в своем клиенте, и электронное письмо отправляется без какого-либо участия вашего сервера.
Управление на стороне сервера:
Существует множество способов сделать это, но первым простым способом является использование пакета Node.js, например Nodemailer . Настройте сервер для получения данных многочастной формы через маршрут запроса POST, а затем попросите сервер преобразовать эти данные в содержимое почты в команду Nodemailer
transporter.sendMail
. В отличие от случая на стороне клиента, вам необходимо настроить выделенную учетную запись отправителя электронной почты - либо на вашем собственном smtp
сервере, либо в службе, подобной gmail
- для использования вашим сервером.
С другой стороны, если вы хотите, чтобы ваш сервер просто выступал в качестве посредника, а не отправлял свои собственные электронные письма, вы можете зарегистрироваться с помощью API электронной почты, такого как SendGrid, Mailgun и т. Д. Затем ваш сервер получит доступ к своему API с данными, отправленными на ваш сервер. POST, и они отправят электронное письмо.