我很难找到有关如何使用actionmailer rails模块手动编译电子邮件的文档。我正在寻找类似于content = Rails::ActionMailer.compile(raw_content)
的东西,它可以完成#deliver上通常会发生的所有编译(预编译器为内联样式,辅助加载内容和其他一些自定义函数)。
我看到了一些使用actionmailer的测试方法的文档,可以将电子邮件发送到已交付的阵列而不提供它们。这是唯一可用的吗?
答案 0 :(得分:1)
从Rails 4.x开始,您需要明确致电deliver
以发送电子邮件。
UserMailer.whatever("args").deliver
因此,您可以使用(请注意不发送)获取消息而不发送消息:
message = UserMailer.whatever("args")
如果您在消息上拨打#body
,则会获得正文内容。
message.body
message
是一个ActionMailer::MessageDelivery
对象,它只是Mail::Message
的包装。