如何在 Rails 中捕获电子邮件的输出并将其放入变量中
从 ActionMailer 输出发送到日志的电子邮件的输出,我想知道是否可以将该输出放入变量中,以便将其存储在文件中。
Ps. 我忘了提及这是在 Rails 2 上
The output from an email sent from ActionMailer output to the log, I wanted to know if I could get that output into a variable so I can store it in a file.
Ps. I forgot to mention that this is on Rails 2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 McStretch 所指出的,观察者是处理邮件发送者传递的每条消息的最佳方式。但是,如果您只想捕获 1 或 2 个特殊情况,可以执行以下操作:
假设您有一个名为
MyMailer
的 ActionMailer 子类,以及一个名为foobar
的电子邮件,As McStretch has pointed out, observer is the best way to handle every message that is delivered by a mailer. However, if you'd like to just capture 1 or 2 special cases, you can do the following:
Assuming you have an ActionMailer subclass called
MyMailer
, and an email calledfoobar
,您可以使用 register_interceptor 或 register_observer 方法分别在发送邮件之前或之后执行某些操作。 ActionMailer 文档指出:
这些方法中的每一个都提供 Mail::Message 作为参数,因此您应该能够从该对象获取所需的数据并将其保存在某处:
You can use the register_interceptor or register_observer methods on ActionMailer to do something before or after sending the mail, respectively. The ActionMailer docs state:
Each of these methods provide a Mail::Message as an argument, so you should be able to get the desired data from that object and save it somewhere: