Rails 3 アプリケーションで Devise を使用してアカウントを作成しています。さまざまなタイプのユーザーがいるため、ユーザーのタイプに基づいてカスタムのパスワード回復メールを送信したいと考えています。
カスタム メールを送信できますが、そのメールにカスタム ヘッダーを設定する方法が見つかりません。メールの件名を設定することに特に関心があります。
私は次のことをしました:
- カスタムメソッドを内部に持つカスタム Devise メーラーを作成しました。このメソッドは、devise_mail をパラメーター付きで呼び出します。この場合、カスタム メーラーは「reset_partner_instructions」と呼ばれます。このメーラーを呼び出して、 User モデルから電子メールを正常に送信できます。
- から正常に呼び出されるカスタム電子メール ビュー テンプレートを作成しました
devise_mail
。
私のカスタムメーラーは次のようになります。
class AccountMailer < Devise::Mailer
helper :application # gives access to all helpers defined within application_helper.
def reset_partner_instructions(record, opts={})
devise_mail(record, :reset_partner_instructions, opts)
end
end
問題は、メールの件名が常に「パートナーの手順のリセット」であることです。Devise はメール テンプレートの名前からこのタイトルを生成していると思います。
このチュートリアルhttps://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailerでは、次のコードを呼び出します。
def confirmation_instructions(record, opts={})
headers["Custom-header"] = "Bar"
super
end
「devise_mail」を直接呼び出しているため、ヘッダーをメーラーに渡す方法がわかりません。メールの件名を設定するために使用できる簡単な設定または方法はありますか?