9

Mandrill (MailChimp のトランザクション メール サービス) と緊密に統合されているアプリに取り組んでおり、Devise メーラーをオーバーライドしようとしていますが、何らかの理由で API 呼び出しを Mandrill に送信すると、メールが届きますが、Devise もからメールが届きます (空白です)。

これが私のDeviseMailer

class MyDeviseMailer < Devise::Mailer
  def reset_password_instructions(record)
    mandrill = Mandrill::API.new("#{MandrillConfig.api_key}")
    mandrill.messages 'send-template',
            { 
              :template_name => 'Forgot Password', 
              :template_content => "",
              :message => {
                :subject => "Forgot Password",
                :from_email => "test@test123.com",
                :from_name => "Company Support",
                :to => [
                  {
                    :email => record.email
                  }
                ],
                :global_merge_vars => [
                  {
                    :name => "FIRST_NAME",
                    :content => record.first_name
                  },
                  {
                    :name => "FORGOT_PASSWORD_URL",
                    :content => "<a href='#{edit_user_password_url(:reset_password_token => record.reset_password_token)}'>Change My Password</a>"
                  }
                ]
              }
            }
      #We need to call super because Devise doesn't think we have sent any mail 
      super
  end
end

superここで見つけた呼び出し: http://qnundrum.com/answer.php?q=254917

4

1 に答える 1

12

私は同様の問題に遭遇していました。

以下を指定するようにデバイス初期化ファイル (devise.rb) を更新しましたか?

config.mailer = "MyDeviseMailer"  

また、views/devise/mailer 内のすべてのファイルを views/mydevisemailer に移動する必要がありました。

また、サーバーを再起動します。

于 2012-12-07T20:01:19.373 に答える