用途
Action Mailer Patterns 面向 Rails 8 项目,提供事务性邮件的实现模式与测试驱动开发(TDD)工作流。适用于创建邮件模板、通知邮件、密码重置邮件、邮件预览等场景。
主要能力
- 使用
bin/rails generate mailer生成邮件器、HTML/文本模板与 RSpec 规格文件。 - 支持 HTML 与纯文本双版本邮件模板,以及统一的邮件布局(layout)。
- 提供开发环境邮件预览(ActionMailer::Preview),无需真实发送即可查看效果。
- 通过 Active Job 实现后台投递(deliver_later),支持延迟、定时与指定队列。
- 支持国际化邮件,可在邮件器方法内使用
I18n.with_locale按用户语言发送。 - 支持附件与内联图片、动态发件人与 reply_to、条件邮件、批量订阅邮件分批处理、邮件回调日志。
使用方式
- 生成邮件器:
bin/rails generate mailer User welcome password_reset,生成邮件器类、HTML/文本模板与规格文件。 - 配置环境:开发环境使用
:letter_opener,生产环境使用:smtp并配置 SMTP 地址、端口、凭据与认证方式;设置default_url_options。 - 定义 ApplicationMailer 基类,设置默认发件人与布局。
- 按 TDD 流程:先写邮件器规格(RED)→ 运行失败 → 创建邮件器方法 → 创建模板 → 运行通过(GREEN)→ 创建预览 → 测试投递集成。
- 在服务或控制器中使用
deliver_later投递,避免在生产环境使用deliver_now。
适用场景
- 用户注册欢迎邮件、密码重置邮件、通知邮件等事务性邮件。
- 需要同时提供 HTML 与纯文本版本的邮件。
- 需要多语言邮件内容的国际化项目。
- 需要以 RSpec 测试邮件头、正文、链接与投递行为的项目。
- 需要批量发送订阅邮件并按批次处理的场景。
限制
资料未提供具体的收费、价格、平台支持范围或性能效果数据。部分内容(如完整 HTML 模板、预览示例、国际化 locale 文件示例)以引用文件形式给出(templates.md、previews.md、i18n.md),正文中未展开。