Picture of the author

GAURAV VARMA

← BACK TO BLOG

Rails 6 introduces parameterized mailers in ActionMailer


Rails 6 introduces parameterized mailers, which simplify mailer usage by setting instance variables shared across mail methods.

Before

Each mail method had to receive parameters and assign them manually:

1class UserMailer < ApplicationMailer
2  def welcome(user)
3    @user = user
4    mail(to: @user.email)
5  end
6end

After: Parameterized Mailer

1class UserMailer < ApplicationMailer
2  def welcome
3    mail(to: @user.email)
4  end
5end
6
7UserMailer.with(user: user).welcome.deliver_later

Instance variables like @user are automatically available, reducing duplication.

Links

Summary

Parameterized mailers reduce boilerplate and make mailer usage more consistent. This update helps keep mailer code clean and focused on delivery.