Как я могу настроить Devise для отправки писем для сброса пароля с помощью почтовой программы PostMark

Я пытаюсь получить все электронные уведомления моей системы под одним зонтом, используя PostMarkApp и используя драгоценные камни Rails ( postmark-rails , почтовый штемпель и почта ). Я успешно создал почтовую программу, которая обрабатывает отправку квитанций о покупках, но я не мог получать электронные письма о забытых паролях. Мои журналы разработки показывают, что Devise отправила сообщение, но в мой почтовый ящик не пришло письмо, а количество баллов PostMark не уменьшается.

What ' лучший или самый простой способ отправить почтовые программы Devise через мою учетную запись PostMark?

Фрагмент из config / environment / development.rb

config.action_mailer.delivery_method      = :postmark
config.action_mailer.postmark_settings    = { :api_key => "VALID_API_KEY_WAS_HERE" }
config.postmark_signature                 = VALID_POSTMARK_SIGNATURE_WAS_HERE

Моя почтовая программа, использующая Postmark

class Notifier < ActionMailer::Base
  # set some sensible defaults
  default :from => MyApp::Application.config.postmark_signature

  def receipt_message(order)
    @order = order
    @billing_address = order.convert_billing_address_to_hash(order.billing_address)

    mail(:to => @order.user.email, :subject => "Your Order Receipt", :tag => 'order-receipt', :content_type => "text/html") do |format|
      format.html
    end
  end
end

РЕДАКТИРОВАТЬ: РЕШЕНИЕ на мой вопрос приведено ниже

Решил эту проблему, если мой почтовый модуль Notifier расширил Devise :: Mailer и указывал Devise для использования моего уведомителя в качестве почтовой программы в фрагменте config / initializers / devise.rb

из config / initializers / devise. rb

# Configure the class responsible to send e-mails.
config.mailer = "Notifier"

My Notifier Mailer now

class Notifier < Devise::Mailer
  # set some sensible defaults
  default :from => MyApp::Application.config.postmark_signature

  # send a receipt of the Member's purchase
  def receipt_message(order)
    @order = order
    @billing_address = order.convert_billing_address_to_hash(order.billing_address)

    mail(:to => @order.user.email, :subject => "Your Order Receipt", :tag => 'order-receipt', :content_type => "text/html") do |format|
      format.html
    end
  end

  # send password reset instructions
  def reset_password_instructions(user)
     @resource = user
     mail(:to => @resource.email, :subject => "Reset password instructions", :tag => 'password-reset', :content_type => "text/html") do |format|
       format.html { render "devise/mailer/reset_password_instructions" }
     end
   end
end

18
задан grafikchaos 15 April 2011 в 17:00
поделиться