我正在尝试将电子邮件保存到数据库,稍后通过rake任务发送。在rails 2.3.8(TMail)中这很容易,但我在使用rails 3.2时遇到了麻烦。
收到Mail对象(邮件)后,我调用mail.encoded来序列化电子邮件。我把它保存到数据库中。
我的rake任务加载了编码的消息,但我找不到重新创建邮件对象并调用deliver(反序列化)的方法。
Mail.new(mail.encoded)似乎应该可以正常工作,但由于Mail.new没有获得默认的ActionMailer SMTP设置,因此传递失败。
其他人做过这样的事情吗?
谢谢!
答案 0 :(得分:2)
好吧,让这个工作。
要序列化电子邮件,请执行以下操作。
email = mail(:to => 'to@me.com', ....)
string = mail.encoded
# later one
mail.new(email.string)
Mail.deliver(mail)
这似乎会跳过任何HTML验证。
我无法设置邮件发送设置(SMTP等),但我认为它默认为:sendmail,并且它正在Web服务器上运行。