我需要记录通过 ActionMailer 发送的电子邮件,而简单的文本文件是不够的。我需要将日志存储在 ActiveRecord 模型中。电子邮件发送性能可能会受到影响,但在这种情况下,这是最好的选择(因为应用程序随后会定期访问日志)。
我还需要记录实际发送的内容和相关的错误,而不仅仅是我的控制器传递给 ActionMailer 的内容(即可能的最低级别实现)。
config.action_mailer.logger
似乎是劫持 Rails 现有机器的理想方法。但是,据我了解,Log4r 和默认的 Ruby 记录器只能输出到文本文件。
有什么建议么?
Thanks!
有两种方法可以解决您的问题,因为您还想存储邮件的内容。
在此之前,邮件的典型内容是:
Sent mail to [email protected] /cdn-cgi/l/email-protection
From: [email protected] /cdn-cgi/l/email-protection
To: [email protected] /cdn-cgi/l/email-protection
Subject: Blah
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Hi, yourself.
这些概述如下
将邮件存储在数据库中可以在定期基础(例如一小时、一天或一周)取决于您想要的方式。这样就可以运行了作为后台工作,它将查找日志文件并提取所需的内容。
做同样事情的更好方法可能是,你附加回调函数到邮件发送函数,这样每当你发送邮件,即调用传递函数时,你的回调函数就会被自己调用,从尾部查找日志到某个点,然后提取内容,然后将其存储在相同。
回调函数可以是一个简单的 ruby 脚本,它打开日志并读取其内容,然后您可以使用它并以您想要的方式存储它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)