When #deliver_now is called all translations within the generated email will be looked up for the current I18n locale. I18n.locale = ‘de’ mail.deliver_now # Generates german email, correct In #enqueue_delivery the locale was not considered and the resulting job uses the default locale. I18n.locale = ‘de’ mail.deliver_later # Generate english email, incorrect In order to achieve a consistent behaviour the current locale is now always passed to `ActionMailer::DeliveryJob`.
2.4 KiB
-
deliver_later
now respects the current locale.Fixes #20774.
Johannes Opper
-
Add
config.action_mailer.deliver_later_queue_name
configuration to set the mailer queue name.Chris McGrath
-
assert_emails
in block form use the given number as expected value. This makes the error message much easier to understand.Yuji Yaginuma
-
Add support for inline images in mailer previews by using an interceptor class to convert cid: urls in image src attributes to data urls.
Andrew White
-
Mailer preview now uses
url_for
to fix links to emails for apps running on a subdirectory.Remo Mueller
-
Mailer previews no longer crash when the
mail
method wasn't called (NullMail
).Fixes #19849.
Yves Senn
-
Make sure labels and values line up in mailer previews.
Yves Senn
-
Add
assert_enqueued_emails
andassert_no_enqueued_emails
.Example:
def test_emails assert_enqueued_emails 2 do ContactMailer.welcome.deliver_later ContactMailer.welcome.deliver_later end end def test_no_emails assert_no_enqueued_emails do # No emails enqueued here end end
George Claghorn
-
Add
_mailer
suffix to mailers created via generator, following the same naming convention used in controllers and jobs.Carlos Souza
-
Remove deprecate
*_path
helpers in email views.Rafael Mendonça França
-
Remove deprecated
deliver
anddeliver!
methods.claudiob
-
Template lookup now respects default locale and I18n fallbacks.
Given the following templates:
mailer/demo.html.erb mailer/demo.en.html.erb mailer/demo.pt.html.erb
Before this change, for a locale that doesn't have its associated file, the
mailer/demo.html.erb
would be rendered even ifen
was the default locale.Now
mailer/demo.en.html.erb
has precedence over the file without locale.Also, it is possible to give a fallback.
mailer/demo.pt.html.erb mailer/demo.pt-BR.html.erb
So if the locale is
pt-PT
,mailer/demo.pt.html.erb
will be rendered given the right I18n fallback configuration.Rafael Mendonça França
Please check 4-2-stable for previous changes.