2012-12-04 13 views
9

Pracuję nad aplikacją, która jest ściśle zintegrowana z Mandrill (usługa mailingowa MailChimp) i próbuję przesłonić program Devise Mailer, ale z jakiegoś powodu, kiedy wysyłam wywołanie API do Mandrill Otrzymuję ich e-mail, ale Devise wysyła mi także e-mail (który jest pusty).Szyny 3 Nadpisywanie Devise Mailer

Oto moja 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 

Wezwanie do super znalazłem tutaj: http://qnundrum.com/answer.php?q=254917

+0

Po prostu myślałem, ale czy próbowałeś zastąpić opcję 'config.mailer' w ** devise.rb **? – Noz

+0

Zrobiłem, devise wciąż wysyła wiadomość e-mail, ponieważ musisz zadzwonić super na dole nadpisania – dennismonsewicz

+0

Co się stanie, jeśli zapomnisz połączenia do super? – mccannf

Odpowiedz

12

biegałam do podobnego problemu.

Czy zaktualizować plik Devise initializer (devise.rb) w celu określenia:

config.mailer = "MyDeviseMailer" 

potrzebne także do poruszania wszelkich plików w widokach/opracowania/przesyłkę do views/mydevisemailer.

Chciałbym również zrestartować serwer.