Rails 3.2 Serialize&反序列化邮件

时间:2013-01-19 15:22:23

标签: ruby-on-rails-3

我正在尝试将电子邮件保存到数据库,稍后通过rake任务发送。在rails 2.3.8(TMail)中这很容易,但我在使用rails 3.2时遇到了麻烦。

收到Mail对象(邮件)后,我调用mail.encoded来序列化电子邮件。我把它保存到数据库中。

我的rake任务加载了编码的消息,但我找不到重新创建邮件对象并调用deliver(反序列化)的方法。

Mail.new(mail.encoded)似乎应该可以正常工作,但由于Mail.new没有获得默认的ActionMailer SMTP设置,因此传递失败。

其他人做过这样的事情吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

好吧,让这个工作。

要序列化电子邮件,请执行以下操作。

email = mail(:to => 'to@me.com',  ....)
string = mail.encoded

# later one

mail.new(email.string)
Mail.deliver(mail)

这似乎会跳过任何HTML验证。

我无法设置邮件发送设置(SMTP等),但我认为它默认为:sendmail,并且它正在Web服务器上运行。