Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails 7.1.0 Action Mailer CHANGELOG(翻訳)

概要

MITライセンスに基づいて翻訳・公開いたします。

参考: Action Mailer の基礎 - Railsガイド

rc1以後の更新はありません。

🔗 Action Mailer CHANGELOG(v7.1.0.rc1)

🔗 Introduce ActionMailer::FormBuilder by ghiculescu · Pull Request #48542 · rails/rails

ActionMailer::FormBuilderを導入。

メーラーでdefault_form_builderを使うことで、メーラーがレンダリングするテンプレートのデフォルトフォームビルダーを設定できるようになる。
Action Controllerの振る舞いに合わせた。

Alex Ghiculescu
同CHANGELOGより

🔗 Action Mailer CHANGELOG(v7.1.0.beta1)

🔗 Sort mailers on mailer preview page alphabetically by spickermann · Pull Request #48989 · rails/rails

メーラーのプレビューページでメーラーがアルファベット順で表示されるようになった。

Martin Spickermann
同CHANGELOGより

参考: 週刊Railsウォッチ20230906: メーラーのプレビュー表示をアルファベット順にした

🔗 Deprecate params via :args for assert_enqueued_email_with by jonathanhefner · Pull Request #48194 · rails/rails

assert_enqueued_email_withへの:argsキーワード引数によるパラメータ渡しを非推奨化。

assert_enqueued_email_with:paramsキーワード引数が代わりにサポートされるようになったので、今後は以下のようにパラメータを渡すこと。

# 変更前
assert_enqueued_email_with MyMailer, :my_method, args: { my_param: "value" }

# 変更後
assert_enqueued_email_with MyMailer, :my_method, params: { my_param: "value" }

名前付きメーラー引数をHashで指定する場合は、Hashを配列でラップすること。

assert_enqueued_email_with MyMailer, :my_method, args: [{ my_arg: "value" }]
# または
assert_enqueued_email_with MyMailer, :my_method, args: [my_arg: "value"]

Jonathan Hefner

同CHANGELOGより

参考: 週刊Railsウォッチ20230613: assert_enqueued_email_with:args引数へのHash渡しが非推奨化

🔗 Add matcher support to assert_enqueued_email_with by maxim · Pull Request #46626 · rails/rails

assert_enqueued_email_withargs:params:にprocを渡せるようになった。

assert_enqueued_email_with DeliveryJob, params: -> p { p[:token] =~ /\w+/ } do
  UserMailer.with(token: user.generate_token).email_verification.deliver_later
end

Max Chernyak
同CHANGELOGより

🔗 Add *_deliver callbacks for Action Mailer by bensheldon · Pull Request #47630 · rails/rails

メールメッセージ配信をラップする*_deliverコールバックをActionMailer::Baseに追加。

例:

class EventsMailer < ApplicationMailer
  after_deliver do
    User.find_by(email: message.to.first).update(email_provider_id: message.message_id, emailed_at: Time.current)
  end
end

Ben Sheldon
同CHANGELOGより

参考: 週刊Railsウォッチ20230425: Action Mailerにbefore_deliverafter_deliveraround_deliverが追加

🔗 Introduce #deliver_enqueued_emails method to ActionMailer::TestHelper by andrewn617 · Pull Request #47520 · rails/rails

deliver_enqueued_emailsメソッドをActionMailer::TestHelperに追加。このメソッドは、エンキューされたすべてのメールジョブを配信する。

def test_deliver_enqueued_emails
  deliver_enqueued_emails do
    ContactMailer.welcome.deliver_later
  end
  assert_emails 1
end

Andrew Novoselac
同CHANGELOGより

参考: 週刊Railsウォッチ20230322: ActionMailer::TestHelperdeliver_enqueued_emailsが追加された

🔗 Allow mailer classes to customize the deliver_later queue name by packagethief · Pull Request #47408 · rails/rails

デフォルトのメーラージョブで使われるdeliver_later_queue_nameをメーラーごとに設定可能になった。
従来は、すべてのメーラーを対象とするActionMailer::Baseによる設定のみが可能だった。

例:

class EventsMailer < ApplicationMailer
  self.deliver_later_queue_name = :throttled_mailer
end

Jeffrey Hardy
同CHANGELOGより

参考: 週刊Railsウォッチ20230314: deliver_laterのジョブキュー名をメーラーごとにカスタマイズ可能になった

🔗 Added option to show all headers for mailer previews by swanson · Pull Request #47317 · rails/rails

すべてのヘッダーを表示できる展開可能なセクションがメールのプレビューに含まれるようになった。

メールスレッド用のMessage-IDや、メールサービスプロバイダ固有の機能として知られるヘッダー(アナリティクスタグやアカウントメタデータなど)も、直接メーラープレビューで表示できるようになった。

Matt Swanson
同CHANGELOGより

🔗 Gracefully degrade when ActionMailer::Base#params is nil by seanpdoyle · Pull Request #47101 · rails/rails

ActionMailer::Parameterized#paramsのデフォルトが空のHashになった。

Sean Doyle
同CHANGELOGより

参考: 週刊Railsウォッチ20230307: メーラーのプレビューで全ヘッダーを表示する機能が追加

🔗 Introduce capture_emails and capture_broadcasts by ghiculescu · Pull Request #48798 · rails/rails

capture_emailsを導入。

ブロック内で送信された全メールを返す。

def test_emails
  emails = capture_emails do
    ContactMailer.welcome.deliver_now
    ContactMailer.welcome.deliver_later
  end
  assert_email "Hi there", emails.first.subject
end

Alex Ghiculescu
同CHANGELOGより

参考: 週刊Railsウォッチ20230809: 副作用のないcapture_emailscapture_broadcastsテストヘルパーを追加

🔗 Added ability to download .eml file for the email preview. by igorkasyanchuk · Pull Request #45987 · rails/rails

メールプレビューの.emlファイルをダウンロードできるようになった。

Igor Kasyanchuk
同CHANGELOGより

🔗 Support multiple preview paths for mailers by fatkodima · Pull Request #31595 · rails/rails

メーラーのプレビューパスを複数扱えるようになった。

従来のconfig.action_mailer.preview_path(単数形)オプションは非推奨化され、今後はconfig.action_mailer.preview_paths(複数形)を使う。このコンフィグオプションにパスを追加すると、メーラープレビューのパス探索で使われるようになる。

fatkodima
同CHANGELOGより

参考: 週刊Railsウォッチ20220829: メーラーのプレビューパスを複数指定可能になる


以前の変更については7-0-stableのCHANGELOGを参照。

関連記事

Rails 7.1に入る主要な機能まとめ(1)update_attribute!、CTEサポートほか(翻訳)

Rails 7.1に入る主要な機能まとめ(2)error_highlight対応、routes --grepほか(翻訳)

Rails 7.1に入る主要な機能まとめ(3)Docker関連ファイル導入ほか(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。