Ruby rails: mailer

From wikinotes

Mailers let you use the rails to format and send emails.
Mailers are special controllers inherit from ActionMailer::Base .
Individual mailers generally inherit from your application's ApplicationMailer.

Documentation

official docs https://guides.rubyonrails.org/action_mailer_basics.html

Locations

URLs
http://localhost:3000/rails/mailers URL listing all mailer previews
Mailers (Controllers)
app/mailers/*.rb
app/mailers/application_mailer.rb
views
erb/app/views/*
erb/app/views/layouts/mailer.text.erb plaintext view of email
erb/app/views/layouts/mailer.html.erb html view of email

Commandline

rails generate mailer UserMailer

Example

# app/mailers/application_mailer.rb
class ApplicationMailer < ActionMailer::Base
  default {from: "from@example.com"}   # hash of default values for view-attributes
  layout 'mailer'                      # ??
end
# app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
  def welcome_email
    @user = params[:user]
    @url  = 'http://example.com/login'
    mail(to: @user.email, subject: 'Welcome to My Awesome Site')  # builds/returns email object
  end
end