Проект: Отправка электронных писем в Ruby on Rails

Не забывайте использовать Git для фиксации изменений в ваших проектах!

Проект: Отправка приветственных писем

Настройка отправки электронных писем является достаточно простой задачей и очень напоминает создание нового контроллера или представления. После того как сделаете это пару раз, все будет делаться естественным образом.

Ваша задача

Стряхните пыль с проекта по заказу авиабилетов (или с одного из других проектов, где есть регистрация пользователей) и сделайте отправку электронного письма с текстом "Вы заказали электронный билет" каждому пассажиру, когда он совершит заказ.

  1. Найдите и загрузите файл проекта.
  2. Сделайте несколько отжиманий и попрыгайте на месте. Последнее время вы проводите за компьютером слишком много времени.
  3. Сгенерируйте новый мэйлер командой $ rails generate mailer PassengerMailer.
  4. Установите гем letter_opener (смотрите документацию), чтобы открывать ваши электронные письма в браузере вместо отправки в окружении для разработки.
  5. Следуйте шагам из Rails-гайда, чтобы создать действие для отправки благодарственного электронного письма.
  6. Сделайте две версии благодарственного электронного письма для авиабилета .html.erb и .text.erb.
  7. Проверьте отправку электронных писем создав новый заказ на авиабилет (гем letter_opener должен открыть его в браузере, если все настроено верно).
  8. Попробуйте еще такой трюк, вызовите мэйлер напрямую из консоли Rails используя что-то подобное > PassengerMailer.thank_you_email(Passenger.first).deliver!.
  9. Дополнительное задание: cделайте деплой на Heroku и проверьте как это работает. Если вы это сделаете, то будет несколько дополнительных настроек, добавьте аддон SendGrid (смотрите документацию) и убедитесь, что конфигурация настроена верно. В документации описано как это сделать.

Решения студентов

Дополнительные ресурсы

Этот раздел содержит полезные ссылки на дополнительные материалы. Они не обязательны, так что расценивайте их как нечто полезное, если вы хотите поглубже погрузиться в тему

Поделиться уроком: