Tôi đang làm việc trên một ứng dụng được tích hợp chặt chẽ với Mandrill (dịch vụ email giao dịch của MailChimp) và tôi đang cố ghi đè Dever Mailer nhưng vì lý do nào đó khi tôi gửi lệnh gọi API tới Mandrill Tôi nhận được email của họ, nhưng Devise cũng gửi cho tôi một email (để trống).Rails 3 Overriding Devise Mailer
Đây là tôi 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 => "[email protected]",
: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
Các cuộc gọi đến super
tôi tìm thấy ở đây: http://qnundrum.com/answer.php?q=254917
Tôi nghĩ, nhưng bạn đã cố ghi đè tùy chọn 'config.mailer' trong ** devise.rb ** chưa? – Noz
Tôi đã làm, nghĩ ra vẫn đang gửi email vì bạn phải gọi siêu ở cuối ghi đè của bạn – dennismonsewicz
Điều gì sẽ xảy ra nếu bạn rời khỏi cuộc gọi đến siêu? – mccannf