通过 actionmailer & premailer 手动编译邮件

Manually compile email through actionmailer & premailer

我很难找到有关如何使用 actionmailer rails 模块手动编译电子邮件的文档。我正在寻找类似 content = Rails::ActionMailer.compile(raw_content) 的东西,它可以完成通常在 #deliver 上发生的所有编译(premailer 到内联样式、帮助程序加载的内容和其他几个自定义函数)。

我看到了一些使用 actionmailer 的测试方法将电子邮件扔进已传送数组而不传送它们的文档。这是唯一可用的东西吗?

从 Rails 4.x 开始,您需要明确调用 deliver 才能发送电子邮件。

UserMailer.whatever("args").deliver

因此您可以使用(注意不发送)来获取消息而不发送它:

message = UserMailer.whatever("args")

如果您在消息上调用 #body,您将获得正文的内容。

message.body

message 是一个 ActionMailer::MessageDelivery 对象,它只是 Mail::Message.

的包装器