Action Mailer cho phép tạo và gửi email từ Rails, tương tự như Controller nhưng cho email.
ruby
# app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
default from: "no-reply@example.com"
def welcome(user)
@user = user
mail(to: @user.email, subject: "Chào mừng bạn!")
end
end
# Gửi sync (trong request) — chặn response
UserMailer.welcome(user).deliver_now
# Gửi async qua Active Job — không chặn
UserMailer.welcome(user).deliver_laterView nằm ở app/views/user_mailer/welcome.html.erb.
Test với ActionMailer::Base.deliveries (test mode tích hợp sẵn).
Action Mailer lets you create and send emails from Rails, similar to a Controller but for email.
ruby
# app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
default from: "no-reply@example.com"
def welcome(user)
@user = user
mail(to: @user.email, subject: "Welcome!")
end
end
# Send sync (in request) — blocks response
UserMailer.welcome(user).deliver_now
# Send async via Active Job — non-blocking
UserMailer.welcome(user).deliver_laterThe view lives at app/views/user_mailer/welcome.html.erb.
Test using ActionMailer::Base.deliveries (built-in test mode).