1

メールをデータベースに保存して、後で rake タスクを介して送信しようとしています。Rails 2.3.8 (TMail) ではかなり簡単でしたが、Rails 3.2 では問題が発生しています。

Mail オブジェクト (メール) を取得したら、mail.encoded を呼び出してメールをシリアル化します。これをデータベースに保存します。

rake タスクはエンコードされたメッセージをロードしますが、メール オブジェクトを再作成して配信 (デシリアライズ) を呼び出す方法が見つかりません。

Mail.new(mail.encoded) は動作するはずですが、Mail.new がデフォルトの ActionMailer SMTP 設定を取得しないため、配信は失敗します。

他の誰かがこのようなことをしていますか?

ありがとう!

4

1 に答える 1

2

よし、うまくいった。

メールをシリアル化するには、次のようにします。

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

# later one

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

これは、HTML 検証をスキップしているように見えます。

メール送信設定 (SMTP など) を設定できませんが、デフォルトで :sendmail になっていると思います。これは Web サーバー上で動作しています。

于 2013-01-19T23:55:08.917 に答える