2016-01-15 6 views
8

Я пытаюсь сделать приложение в Rails 4.Rails 4, Разрабатывают и Mandrill письма

В течение последних 3-х лет, я изо всех сил, чтобы выяснить Разрабатывают/OmniAuth (Я все еще пытаюсь получить это работать).

Отступив от основных проблем, пока я пытаюсь найти волю, чтобы жить через это, я пытался настроить электронную почту с помощью Mandrill.

Я нашел этот учебник, который я пытаюсь следовать: https://nvisium.com/blog/2014/10/08/mandrill-devise-and-mailchimp-templates/

У меня есть почтовая программа под названием 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 

Различия между выше и то, что они сделали в учебнике являются:

В моем почтовом шаблоне шимпанзе Mandrill, у меня есть:

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

Когда я получаю электронное письмо для сброса инструкций, я получаю подчеркнутую ссылку на форму смены пароля, в которой говорится: «Смените мой пароль рядом с ним. Я хочу «изменить мой пароль как ярлык, который скрывает текст ссылки».

Может ли кто-нибудь увидеть, что я сделал неправильно?

+0

Ваш ': from_email' установлен в' [ "PROD_WELCOME"] ', который не похож на адрес электронной почты на меня. – VNO

+0

Спасибо - установка ENV заставила отправить электронную почту, но она печатает слова между * || *, а не вытягивает переменную – Mel

+0

Возможно, вы используете рули в качестве языка слияния по умолчанию? Перейдите в свой Mandrill [параметры отправки] (https://mandrillapp.com/settings/sending-options) в настройках и проверьте, включен ли правильный язык слияния. –

ответ

-2

Вот как я создал пользовательский 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 и Add dynamic value in devise email subject

+0

Привет, Дмитрий, Похоже, вы пытаетесь использовать mailchimp/mandrill. Спасибо, в любом случае. – Mel

+0

API Mandrill требовал этих опций ['from_email'] и выбирал параметры ['from_name']. Я добавил пользовательский класс доставки по http://www.alanverga.com/blog/2014/01/03/custom-rails-mailer-and-mandrill и https://robots.thoughtbot.com/how-to-send- transactional-emails-from-rails-with-mandrill –

+0

Но у меня также есть эти параметры моего файла. Моя проблема в том, что ссылки не форматируются как ссылки так, как я их выражал.Вместо этого ссылка появляется внутри видимых тегов с меткой ссылки рядом с ней в виде текста. – Mel

Смежные вопросы