2016-01-15 13 views
8

Ich versuche, eine app in Rails 4.Rails 4 Devise & Mandrill E-Mails

Für die letzten 3 Jahre zu machen, ich habe zu kämpfen worden, um herauszufinden, devise/omniauth (Ich versuche immer noch zu bekommen es zu arbeiten).

Von den Hauptproblemen abgesehen, während ich versuche, den Willen zu finden, dies zu überleben, habe ich versucht, E-Mails mit Mandrill einzurichten.

Ich fand dieses Tutorial, das ich zu folgen versuchen: https://nvisium.com/blog/2014/10/08/mandrill-devise-and-mailchimp-templates/

Ich habe einen Mailer mandrill_devise_mailer.rb

class MandrillDeviseMailer < Devise::Mailer 

    def confirmation_instructions(record, token, opts={}) 
    # code to be added here later 
    end 

    def reset_password_instructions(record, token, opts={}) 
    options = { 
     :subject => "Reset your password", 
     :email => record.email, 
     :global_merge_vars => [ 
     { 
      name: "password_reset_link", 
      # content: "http://www.example.com/users/password/edit?reset_password_token=#{token}" 
      content: "http://www.cr.com/users/password/edit?reset_password_token=#{token}" 

     }, 

     { 
      name: "PASSWORD_RESET_REQUEST_FROM", 
      content: record.full_name 
     } 
     ], 
     :template => "Forgot Password" 
    } 
    mandrill_send options 
    end 

    def unlock_instructions(record, token, opts={}) 
    # code to be added here later 
    end 

    def mandrill_send(opts={}) 
    message = { 
     :subject=> "#{opts[:subject]}", 
     :from_name=> "Reset Instructions", 
     # :from_email=>"[email protected]", 
     :from_email=>["PROD_WELCOME"], 
     :to=> 
      [{"name"=>"#{opts[:full_name]}", 
       "email"=>"#{opts[:email]}", 
       "type"=>"to"}], 
     :global_merge_vars => opts[:global_merge_vars] 
     } 
    sending = MANDRILL.messages.send_template opts[:template], [], message 
    rescue Mandrill::Error => e 
     Rails.logger.debug("#{e.class}: #{e.message}") 
     raise 
    end 
end 

Die Unterschiede zwischen der oben genannten und was sie im Tutorial getan haben sind:

In meiner Mail chimp mandrill Vorlage

, ich habe:

<a href="*|password_reset_link|*">Change my password </a> 

Wenn ich die E-Mail zum Zurücksetzen der Anweisungen erhalte, erhalte ich einen unterstrichenen Link zum Formular zum Ändern des Passworts, das besagt: "Ändern Sie mein Passwort daneben. Ich möchte "mein Passwort ändern, um das Etikett zu sein, das den Linktext verbirgt".

Kann jemand sehen, was ich falsch gemacht habe?

+0

Ihre ': from_email' ist auf '[ "PROD_WELCOME"]', das wie eine E-Mail-Adresse schaut nicht auf mich. – VNO

+0

Danke - Einstellung der ENV gemacht die E-Mail senden, aber es druckt die Worte zwischen den * || * anstatt die Variable – Mel

+0

Vielleicht ziehen Sie Lenker als Ihre Standard-Merge-Sprache? Gehen Sie zu Ihrem Mandrill [Sendeoptionen] (https://mandrillapp.com/settings/sending-options) unter Einstellungen und prüfen Sie, ob Sie die richtige Zusammenführungssprache aktiviert haben. –

Antwort

-2

Hier ist, wie ich erstellen benutzerdefinierten DeviseMailer

class MyDeviseMailer < Devise::Mailer 
    default template_path: 'devise/mailer' # to make sure that your mailer uses the devise views 

    def reset_password_instructions(record, token, opts={}) 
    opts['from_email'] = "[email protected]" 
    opts['from_name'] = "Password Reset" 
    #Rails.logger.mail.info "reset_password_instructions #{record.to_json} \n #{token.to_json} \n #{opts.to_json}" 
    super 
    end 

end 

https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer und Add dynamic value in devise email subject

+0

Hallo Dmitry, es tut nicht Sie sehen aus, als würden Sie versuchen, mailchimp/mandrill zu verwenden. Danke trotzdem. – Mel

+0

Mandrill API benötigt diese Optionen ['from_email'] und opts ['from_name'] params. Ich habe die benutzerdefinierte Bereitstellungsklasse nach http://www.alanverga.com/blog/2014/01/03/custom-rails-mailer-and-mandrill und https://robots.hoonhtbot.com/how-to-send- hinzugefügt. transactional-email-from-rails-with-mandrill –

+0

Aber ich habe auch diese Optionen meine Datei. Mein Problem ist, dass die Links nicht als Links formatiert werden, so wie ich sie ausgedrückt habe.Stattdessen erscheint der Link innerhalb eines sichtbaren Tags, mit dem Label des Links daneben als Text. – Mel