DevMan: спасибо :) у меня, наверное, предвзятое к ним отношение - в далёком детстве работал с проектом, в котором на сервере выполнялись хуки и это было странно. То есть я делаю коммит и даже не знаю, пройдёт он или вернётся с ошибкой. Так что теперь я вообще про их существование забыл :D
Сейчас это решается сильно проще, например, у нас так: разработчик коммитит сколько угодно в фичабранч, хоть локально, хоть пушит на сервер, это его дело. Надо это дело проверить - он запускает задачу в Jenkins, которая прогоняет автоматические тесты, собирает docker image, и выкатывает для ручного тестирования на тестовый. Не надо - не запускает.
Система сильно не идеальна, есть куда расти, как вширь (сжирает тонны места, а чистка ненужных образов только вручную, надо бы наверное написать плагин для Jenkins), так и вглубь (Canary deployment например), но по сравнению с моей детской психологической травмой с серверными хуками - небо и земля :)
Как по мне, у иностранных лекторов, которые СТАРАЮТСЯ говорить внятно, чаще всего речь более разборчивая. Но всегда возможны исключения :) Порой СТАРАЮТСЯ и носители языка. А порой и иностранцы не стараются. (Под иностранцами подразумеваю людей, постоянно проживающих в не-англоязычных странах)
В случае клиентского JS, встаёт вопрос безопасности. Возможность отправить при помощи браузерного (клиентского) Javascript письмо на почту означала бы, что кто угодно может зайти на какой-нибудь сайт, и начать спамить во все стороны. И с другой стороны, из лучших побуждений предоставив свои реквизиты для отправки почты клиентам, может попасться недобросовестный клиент, который будет использовать эти реквизиты для отправки спама :)
Если речь про серверный js (node.js, например), есть nodemailer, есть mailgun, да и вообще всегда можно напрямую к SMTP серверу подсоединиться и отправить письмо.
Именно поэтому отправку делают при помощи сервера, а не клиента. И доступом от SMTP или Mailgun/Mandrill/Печкина/Богзнаетчегоещё - не делятся.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.